Tips:
本文主要用于sql注入攻击自查,请不要做犯法的事情。
之前已经讲过如何用Burp和Sqlmap配合进行sql注入攻击,但是使用起来特别麻烦,对有大量接口调用的项目如何自动化的进行检测便变得重要,本篇注重介绍如何使用Burp以及sqlmap的批量注入来完成自动化注入攻击。
整体流程为:
- 使用BurpSuite保存request记录log
- 因为BurpSuite的日志记录了所有走代理的流量,包括静态资源啊,重复的提交啊,这些都会影响SqlMap的分析效率,所以对Request日志进行过滤。
- 对过滤后的日志文件进行批量注入攻击。
使用BurpSuite保存request记录log
使用的BurpSuite版本为1.7.26进行的操作,各个版本有可能不一样,请注意。
勾选BurpSuite输出日志
输入要保存为的文件名称
对日志进行过滤
强大的SqlMap支持使用BurpSuite的日志进行批量分析,但是BurpSuite的日志记录了所有走代理的流量,包括静态资源啊,重复的提交啊,这些都会影响SqlMap的分析效率,所以需要对访问日志进行过滤,只筛选出我们需要的。
使用burplogfilter.py过滤日志,点击下载
介绍:1
2
3
4
5
6
7
8
9
10Usage: python3 burplogfilter.py [options]
Options:
-h Show this showHelp
-f filepath The BurpSuite log to analyze
--host keyword, --host=keyword Host name filter
-v Show debug message
Examples:
python3 burplogfilter.py -f /tmp/burp.log --host='google.com' > burp-proxy.log
参考本文BurpSuite日志分析过滤工具,加快SqlMap进行批量扫描的速度
git地址
使用:1
2python3 burplogfilter.py -f ~/temp/burp/sql_map_log --host=xxxx > ~/temp/burp/sql_map_log_proxy
# 保存过滤日志到新的文件
在使用burplogfilter过程中,发现报以下错误“TypeError: cannot use a string pattern on a bytes-like object”
修改burplogfilter.py以下位置即可1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17def scrapBlocks(filename):
global DEBUG
if DEBUG:
print("Try to anayze file %s"%filename)
blocks=None
with open(filename, 'rb') as f:
content=f.read()
content = content.decode('ISO-8859-1') #添加这句话
blocks = re.findall(r'======================================================'
r'.*?======================================================'
r'.*?======================================================', content, re.S)
if DEBUG:
print("The file contains %s block(s)"%len(blocks))
return blocks
对过滤后的日志文件进行批量注入攻击
进入sqlmap.py所在目录,1
2
3
4python sqlmap.py -l /Users/daren/temp/burp/sql_map_log_1_filter --batch -smart --dbms=oracle
# -l 访问日志文件
# batch:自动选yes。
# smart:启发式快速判断,节约时间。
到此完成自动化批量注入攻击。