W13Scan
W13scan 是基于Python3的一款开源的Web漏洞发现工具,它支持主动扫描模式和被动扫描模式,能运行在Windows、Linux、Mac上。
声明
使用W13Scan前请遵守当地法律,W13Scan仅提供给教育行为使用。
特点
相比于其他专业的扫描工具,w13scan也有自己独有的优点。
免费/开源
安全从业人员可能不会信任任何程序,唯一能让人稍微信任的就是开源代码。
安全是建立在信任之上,信任需要开放和透明。w13scan核心代码完全开源,任何人可以检查其代码的安全性。
可以方便针对一些棘手且高度专业化的环境,可以按照w13scan开发文档补充其功能,自定义需要的模块。
丰富的检测插件
- XSS扫描
- 基于语义的反射型XSS扫描,准确率极高
- XSS扫描会从网页中提取参数进行解析
- jsonp信息泄漏
- 基于语义解析寻找敏感信息
- sql注入
- 基于报错SQL注入检测
- 基于网页相似度布尔类型的SQL注入检测
- 基于时间SQL注入检测
- http smuggling 走私攻击
- Fastjson检测与利用
- .Net通杀Xss检测
- portswigger 2019十大攻击技术第六名
- iis解析漏洞
- 敏感文件信息泄漏
- 支持含备份文件,debug文件,js敏感信息,php真实路径泄漏,仓库泄漏,phpinfo泄漏,目录遍历等
- baseline检测(反序列化参数检测)
- 命令/代码注入检测
- 支持asp,php等语言的检测
- 支持系统命令注入检测(支持无回显检测)
- 支持get,post,cookie等方式检测
- 路径穿越漏洞
- struts2漏洞检测
- 包括s2-016、s2-032、s2-045漏洞
- webpack打包源文件泄漏
- 未授权访问插件
扫描平台对比
w13scan测试了多个扫描平台,以下为扫描平台的测试报告
平台名称 | 扫描结果 | 扫描模式 |
---|---|---|
WVS PHP Vulnweb | 查看 | crawlergo+w13scan 自动扫描 |
WVS AJAX Vulnweb | 查看 | 被动扫描 |
demo.aisec.cn | 查看 | 被动扫描 |
使用
Useage
usage: w13scan [options]
optional arguments:
-h, --help show this help message and exit
-v, --version Show program's version number and exit
--debug Show programs's exception
--level {1,2,3,4,5} different level use different payload: 0-5 (default 2)
Proxy:
Passive Agent Mode Options
-s SERVER_ADDR, --server-addr SERVER_ADDR
server addr format:(ip:port)
Target:
options has to be provided to define the target(s)
-u URL, --url URL Target URL (e.g. "http://www.site.com/vuln.php?id=1")
-f URL_FILE, --file URL_FILE
Scan multiple targets given in a textual file
Request:
Network request options
--proxy PROXY Use a proxy to connect to the target URL
eg:http@127.0.0.1:8080 or socks5@127.0.0.1:1080
--timeout TIMEOUT Seconds to wait before timeout connection (default 30)
--retry RETRY Time out retrials times.
Output:
output
--html When selected, the output will be output to the output
directory by default, or you can specify
--json JSON The json file is generated by default in the output
directory, you can change the path
Optimization:
Optimization options
-t THREADS, --threads THREADS
Max number of concurrent network requests (default 31)
--disable DISABLE [DISABLE ...]
Disable some plugins (e.g. --disable xss sqli_error
webpack)
--able ABLE [ABLE ...]
Enable some moudle (e.g. --enable xss webpack)
安装
安装w13scan需要依赖Python3.6以上环境.
git clone https://github.com/w-digital-scanner/w13scan.git
cd w13scan # 进入git目录
pip3 install -r requirements.txt
cd W13SCAN # 进入源码目录
python3 w13scan.py -h
被动扫描
python3 w13scan.py -s 127.0.0.1:7778 --html # 端口可省略,默认为7778,开启--html即实时生成html报告
HTTPS支持
如果想让w13scan被动模式支持https,先启动w13scan,然后在浏览器中访问 http://w13scan.ca 下载证书并信任它。
主动扫描
-u 输入一个url进行扫描
--file 从文件中读取url扫描
w13scan会对url进行参数分析并使用插件扫描,但不会进行爬虫。
结合动态爬虫扫描
crawlergo + w13scan 自动扫描
在目录crawlergo_example
spider.py
展示了如何与crawlergo爬虫结合联动。
反连平台(非必须)
修改config.py
下有关反连平台的设置,可类似修改为
# REVERSE
USE_REVERSE = True # 使用反连平台将False改为True
REVERSE_HTTP_IP = "127.0.0.1" # 回连http IP地址,需要改为服务器ip,不能改为0.0.0.0,因为程序无法识别
REVERSE_HTTP_PORT = 9999 # 回连http端口
REVERSE_DNS = "dnslog.w13scan.hacking8.com" # 修改为自己的域名,并将域名dns修改为本机IP
REVERSE_RMI_IP = "127.0.0.1" # Java RMI 回连IP,需要改为服务器ip,不能改为0.0.0.0,因为程序无法识别
REVERSE_RMI_PORT = 10002 # Java RMI 回连端口
REVERSE_SLEEP = 5 # 反连后延时检测时间,单位是(秒)
之后先启动反连平台
python3 reverse.py
再启动w13scan即可
集成到自己扫描器
w13scan是开源的,我们也希望安全研究人员将w13scan集成到自己的扫描器中。
请点击 开发文档
贡献&感谢
有关的文章
- 微信公众号搜索"Hacking就是好玩",可订阅更新动态。
- 1024献礼,W13Scan 2.1.0发布,增加对代理的的支持
- w13scan 2.0的介绍
- w13scan 1.0畅想