有时候承接渗透测试任务或是挖掘SRC时会被规定,不能采用漏洞扫描工具如AWVS、Appscan等,那这个时候针对SQL注入的验证除了手动验证还有什么效率高的方法呢。
不借助集成工具验证但我们可以分开验证。就拿SQL注入验证来说,本质上就是爬取网站URL,再去验证是否有注入,集成工具的验证方式大多都有攻击性行为,但我们可以采用sqlmap来辅助验证,点到即止,最多读到数据库名,这跟我们安全平台提交漏洞的截图差不多,属于验证行为。
0x01 自动化爬取页面URL
用于爬取网站URL的方式也有很多,但本质上是通过正则或遍历后台URL的方式来获取,比如Crawlergo、gau等。这里我就直接用的gau。
地址如下:(文末会提供所有工具)
https://github.com/Qianlitp/crawlergo
https://github.com/lc/gau
使用方式如下:
echo “https://xxx.com” | gau --blacklist png,jpg > target.txt
–blacklist为过滤爬取的内容,表示去除png和jpg等图片(可以自定义添加),将抓取的结果输出到target.txt中,如下:
0x02 自动化URL过滤
此次我们爬取的目的是测试sql注入,此次GET类型的批量测试为例,需要先从批量获取的URL中筛选带有参数的链接,实现方式可以写个脚本做个筛选(思路就是采用正则匹配出带GET参数的),Python脚本如下:
import re
for ip in open('target.txt',encoding = 'utf-8'):
num = re.findall("[^js]\?\w=",ip)
if(num != []):
print(ip)
f_url1 = open('tiqu.txt', 'a')
f_url1.write(ip)
f_url1.close()
将第一步提取的URL放在target中,采用python3执行脚本可以过滤,提取内容放在tiqu.txt,如下:
0x03 自动化批量测试
通过上述方式获取到URL链接后,可结合各类单功能测试工具批量验证,这里推荐两款工具,sqlmap和XSStrike。其是可以批量验证sql注入和xss漏洞,将过滤链接放在target.txt下,使用方法如下:
XSStrike执行如下语句批量测试
python xsstrike.py --seeds target.txt --crawl --blind --skip-dom
sqlmap执行如下语句批量测试
python sqlmap.py -m “urlsql.txt” --batch --dbs --tables --output-dir=result.txt
这个过程中其实还有很多可以改进的点,比如批量爬取URL的工具,AWVS自带的爬虫也好,自己写爬虫也好,可以继续扩充,另一方面获取到的链接可以改进脚本过滤,可以采用更多的批量测试工具进行测试。
关注公众号:白帽学子,回复关键字"爬虫",获取本文所有工具和脚本。