摘要
漏洞扫描之w13scan、xray被动扫描和crawlergo爬虫联动
w13Scan
下载地址
https://github.com/w-digital-scanner/w13scan
1
https://github.com/w-digital-scanner/w13scan
参数说明
optional arguments:
-h, --help 显示此帮助信息并退出
-v, --version 显示程序的版本号并退出
--debug 显示程序的异常
--level {1,2,3,4,5} 不同级别使用不同的有效负载:0-5(默认为2)
Proxy:
被动代理模式选项
-s SERVER_ADDR, --server-addr SERVER_ADDR 服务器addr格式:(ip:端口)
Target:
必须提供选项来定义目标
-u URL, --url URL 目标URL(例如:“http://www.site.com/vuln.php?id=1”)
-f URL_FILE, --file URL_FILE 扫描文本文件中给定的多个目标
Request:
Network request options
--proxy PROXY 使用代理连接到目标URL,如:[email protected]:8080
--timeout TIMEOUT 超时连接之前等待的超时秒数(默认为30)
--retry RETRY 超时检索时间。
Output:
输出
--html 当选择时,输出html文件到输出目录,或者您可以指定
--json JSON json文件目录是在输出中默认生成的目录,您可以更改路径
Optimization:
优化选项
-t THREADS, --threads THREADS
最大并发网络请求数(默认为31)
--disable DISABLE [DISABLE ...]
禁用一些插件(例如——禁用xss sqli_error)
--able ABLE [ABLE ...]
启用一些moudle(例如:启用xss webpack)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
optionalarguments:
-h,--help显示此帮助信息并退出
-v,--version显示程序的版本号并退出
--debug显示程序的异常
--level{1,2,3,4,5}不同级别使用不同的有效负载:0-5(默认为2)
Proxy:
被动代理模式选项
-sSERVER_ADDR,--server-addrSERVER_ADDR服务器addr格式:(ip:端口)
Target:
必须提供选项来定义目标
-uURL,--urlURL目标URL(例如:“http://www.site.com/vuln.php?id=1”)
-fURL_FILE,--fileURL_FILE扫描文本文件中给定的多个目标
Request:
Networkrequestoptions
--proxyPROXY使用代理连接到目标URL,如:[email protected]:8080
--timeoutTIMEOUT超时连接之前等待的超时秒数(默认为30)
--retryRETRY超时检索时间。
Output:
输出
--html当选择时,输出html文件到输出目录,或者您可以指定
--jsonJSONjson文件目录是在输出中默认生成的目录,您可以更改路径
Optimization:
优化选项
-tTHREADS,--threadsTHREADS
最大并发网络请求数(默认为31)
--disableDISABLE[DISABLE...]
禁用一些插件(例如——禁用xsssqli_error)
--ableABLE[ABLE...]
启用一些moudle(例如:启用xsswebpack)
crawlargo
介绍
360 0Kee-Teem公开的使用golang语言开发的crawlargo,crawlergo使用chrome headless模式进行URL动态爬虫,收集包括js文件内容、页面注释、robots.txt文件和常见路径Fuzz,确保不遗漏关键的入口链接。
下载地址
https://github.com/0Kee-Team/crawlergo
1
https://github.com/0Kee-Team/crawlergo
安装之前需要安装最新版的chromium,下载地址如下:
https://download-chromium.appspot.com/
1
https://download-chromium.appspot.com/
参数说明
--chromium-path Path, -c Path chrome的可执行程序路径
--custom-headers Headers 自定义HTTP头,使用传入json序列化之后的数据,这个是全局定义,将被用于所有请求
--post-data PostData, -d PostData 提供POST数据,目标使用POST请求方法
--max-crawled-count Number, -m Number 爬虫最大任务数量,避免因伪静态造成长时间无意义抓取。
--filter-mode Mode, -f Mode 过滤模式,简单:只过滤静态资源和完全重复的请求。智能:拥有过滤伪静态的能力。严格:更加严格的伪静态过滤规则。
--output-mode value, -o value 结果输出模式,console:打印当前域名结果。json:打印所有结果的json序列化字符串,可直接被反序列化解析。none:不打印输出。
--output-json filepath 将爬虫结果JSON序列化之后写入到json文件。
--incognito-context, -i 浏览器启动隐身模式
--max-tab-count Number, -t Number 爬虫同时开启最大标签页,即同时爬取的页面数量。
--fuzz-path 使用常见路径Fuzz目标,获取更多入口。
--robots-path 从 /robots.txt 文件中解析路径,获取更多入口。
--request-proxy proxyAddress 支持socks5代理,crawlergo和chrome浏览器的所有网络请求均经过代理发送。
--tab-run-timeout Timeout 单个Tab标签页的最大运行超时。
--wait-dom-content-loaded-timeout Timeout 爬虫等待页面加载完毕的最大超时。
--event-trigger-interval Interval 事件自动触发时的间隔时间,一般用于目标网络缓慢,DOM更新冲突时导致的URL漏抓。
--event-trigger-mode Value 事件自动触发的模式,分为异步和同步,用于DOM更新冲突时导致的URL漏抓。
--before-exit-delay 单个tab标签页任务结束时,延迟退出关闭chrome的时间,用于等待部分DOM更新和XHR请求的发起捕获。
--ignore-url-keywords 不想访问的URL关键字,一般用于在携带Cookie访问时排除注销链接。用法:-iuk logout -iuk exit。
--form-values 自定义表单填充的值,按照文本类型设置。支持定义类型:default, mail, code, phone, username, password, qq, id_card, url, date, number,文本类型通过输入框标签的id、name、class、type四个属性值关键字进行识别。如,定义邮箱输入框自动填充A,密码输入框自动填充B,-fv mail=A -fv password=B。其中default代表无法识别文本类型时的默认填充值,目前为Cralwergo。
--form-keyword-values 自定义表单填充的值,按照关键字模糊匹配设置。关键字匹配输入框标签的id、name、class、type四个属性值。如,模糊匹配pass关键词填充123456,user关键词填充admin,-fkv user=admin -fkv pass=123456。
--push-to-proxy 拟接收爬虫结果的监听地址,一般为被动扫描器的监听地址。
--push-pool-max 发送爬虫结果到监听地址时的最大并发数。
--log-level 打印日志等级,可选 debug, info, warn, error 和 fatal。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
--chromium-pathPath,-cPathchrome的可执行程序路径
--custom-headersHeaders自定义HTTP头,使用传入json序列化之后的数据,这个是全局定义,将被用于所有请求
--post-dataPostData,-dPostData提供POST数据,目标使用POST请求方法
--max-crawled-countNumber,-mNumber爬虫最大任务数量,避免因伪静态造成长时间无意义抓取。
--filter-modeMode,-fMode过滤模式,简单:只过滤静态资源和完全重复的请求。智能:拥有过滤伪静态的能力。严格:更加严格的伪静态过滤规则。
--output-modevalue,-ovalue结果输出模式,console:打印当前域名结果。json:打印所有结果的json序列化字符串,可直接被反序列化解析。none:不打印输出。
--output-jsonfilepath将爬虫结果JSON序列化之后写入到json文件。
--incognito-context,-i浏览器启动隐身模式
--max-tab-countNumber,-tNumber爬虫同时开启最大标签页,即同时爬取的页面数量。
--fuzz-path使用常见路径Fuzz目标,获取更多入口。
--robots-path从/robots.txt文件中解析路径,获取更多入口。
--request-proxyproxyAddress支持socks5代理,crawlergo和chrome浏览器的所有网络请求均经过代理发送。
--tab-run-timeoutTimeout单个Tab标签页的最大运行超时。
--wait-dom-content-loaded-timeoutTimeout爬虫等待页面加载完毕的最大超时。
--event-trigger-intervalInterval事件自动触发时的间隔时间,一般用于目标网络缓慢,DOM更新冲突时导致的URL漏抓。
--event-trigger-modeValue事件自动触发的模式,分为异步和同步,用于DOM更新冲突时导致的URL漏抓。
--before-exit-delay单个tab标签页任务结束时,延迟退出关闭chrome的时间,用于等待部分DOM更新和XHR请求的发起捕获。
--ignore-url-keywords不想访问的URL关键字,一般用于在携带Cookie访问时排除注销链接。用法:-iuklogout-iukexit。
--form-values自定义表单填充的值,按照文本类型设置。支持定义类型:default,mail,code,phone,username,password,qq,id_card,url,date,number,文本类型通过输入框标签的id、name、class、type四个属性值关键字进行识别。如,定义邮箱输入框自动填充A,密码输入框自动填充B,-fvmail=A-fvpassword=B。其中default代表无法识别文本类型时的默认填充值,目前为Cralwergo。
--form-keyword-values自定义表单填充的值,按照关键字模糊匹配设置。关键字匹配输入框标签的id、name、class、type四个属性值。如,模糊匹配pass关键词填充123456,user关键词填充admin,-fkvuser=admin-fkvpass=123456。
--push-to-proxy拟接收爬虫结果的监听地址,一般为被动扫描器的监听地址。
--push-pool-max发送爬虫结果到监听地址时的最大并发数。
--log-level打印日志等级,可选debug,info,warn,error和fatal。
xray
下载地址
https://github.com/chaitin/xray/releases
1
https://github.com/chaitin/xray/releases
crawlargo与xray联动
xray开启监听
>xray.exe webscan --listen 127.0.0.1:7777 --html-output test001.html
1
>xray.exewebscan--listen127.0.0.1:7777--html-outputtest001.html
rawlargo开始使用代理爬虫
crawlergo.exe -c chrome-win\chrome.exe -t 20 --request-proxy http://127.0.0.1:7777 http://testphp.vulnweb.com/
1
crawlergo.exe-cchrome-win\chrome.exe-t20--request-proxyhttp://127.0.0.1:7777 http://testphp.vulnweb.com/
效果
crawlargo与w13Scan联动
w13Scan 开启监听
python w13scan.py -s 127.0.0.1:9999 --html
1
pythonw13scan.py-s127.0.0.1:9999--html
rawlargo开始使用代理爬虫
crawlergo.exe -c chrome-win\chrome.exe -t 20 --request-proxy http://127.0.0.1:9999 http://testphp.vulnweb.com/
1
crawlergo.exe-cchrome-win\chrome.exe-t20--request-proxyhttp://127.0.0.1:9999 http://testphp.vulnweb.com/
效果