freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

通过Debug方式简析W13SCAN
李坦然 2021-09-20 18:43:22 127479

一、工具

PyCharm 2020.3.3 (Community Edition)
W13scan  主被动式安全扫描器

下载地址:https://github.com/w-digital-scanner/w13scan

二、Debug方式开启

1. 注

直接运行w13scan.py是无法正确启动该工具的,需要配置一点东西

2. 进行配置

这里用最简单的主动扫描方式进行站点扫描,该站点是存在备份文件泄露漏洞的。

3. 设置断点

4. 点击调试

可以看见在控制台中运行了以下代码,其中-u http://www.xxxx.cn便是前面设置的参数:

E:\python\python.exe "E:\PyCharm Community Edition 2020.3.3\plugins\python-ce\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 32300 --file E:/xxxxxxx/W13SCAN/w13scan.py -u http://www.xxxx.cn

三、分析过程

1. 实例化两个对象KB、conf

注:class AttribDict(dict):

2. 按F7继续

进入main函数,第一步就是version_check()函数
函数作用:该工具集成了sqlmap,故要支持sqlmap,则python版本需>=3.6。

3. F7继续

进入root = modulePath(),经过函数内部一系列处理得到入口文件路径

4. F7继续

进入cmdline = cmd_line_parser(),该函数解析了命令行携带的参数

5. F7继续

进入init(root, cmdline),目的是初始化执行,如下图可以发现许多功能均已初始化。

6. F7继续

进入判断,

if conf.url or conf.url_file:

此时我们conf实例中url已有值。

7. 判断是单个域名还是一个域名文件

if conf.url: urls.append(conf.url)

if conf.url_file: 不是文件故不符合条件

8. 循环处理域名列表

9. 通过域名/IP 尝试访问目标

返回200

10. 对目标进行分析

fake_req = FakeReq(domain, {}, HTTPMETHOD.GET, "")

11. 启动线程

def start():
   run_threads(conf.threads, task_run)

12. 进入漏扫插件

备份好scanners文件夹,我将扫描插件库中除了备份文件扫描插件,其余的都删除,这里三个备份文件扫描插件,分别是:基于文件;常见通用备份文件;基于域名的备份文件。从这三个角度来构造payload可以说是非常全面的。

13. 在backup_file.py的开头设置断点

开启调试,根据左下角来分析大致流程,

第一步:进main()

第二步:root是文件路径,cmdline是命令参数

第三步:执行函数,函数作用是加载漏扫插件

第四步:启动模块,在第三步中函数内部的操作

第五步:加载漏扫插件

第六步:执行漏扫插件

14. 进入漏洞插件类内部

所有的插件都有两个方法:
def _check(self, content):    对内部的,不需要过于关注
def audit(self):                     对外部的,核心代码

15. 分析payload

1) 基于文件的备份文件:

2) 常见备份文件:

这里list太少了,可以改进一下,读取一个文件进行fuzz。

list =['bak.rar', 'bak.zip', 'backup.rar', 'backup.zip', 'www.zip', 'www.rar', 'web.rar', 'web.zip','wwwroot.rar','wwwroot.zip', 'log.zip', 'log.rar']

http://www.xxxx.cn/list[i]

3) 基于域名的备份文件:

可以加一些,如xxxx.cn.rar、www.xxxx.cn.rar
'http://www.xxxx.cn/cn.rar'
'http://www.xxxx.cn/cn.zip'
'http://www.xxxx.cn/xxxx.zip'
'http://www.xxxx.cn/xxxx.rar'
'http://www.xxxx.cn/www.rar'
'http://www.xxxx.cn/www.zip'

16. 最终结果保存在json文件中


# 漏洞扫描 # 工具介绍 # 工具分析
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 李坦然 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
李坦然 LV.4
https://www.yuque.com/litanran
  • 10 文章数
  • 18 关注者
一个易懂、完整、实战的K8S攻防靶场演练
2024-01-12
【云原生安全】Kubernetes 入口网络策略攻防
2023-12-30
【云原生安全】Bad Pods系列基础篇-创建恶意POD
2023-12-30
文章目录