Web安全测试时经常会遇到一些蹩脚的注射点,而因各种原因利用注射又无法获取网站管理账号或拥有网站管理权限却迟迟不能upload一个shell的时候,可能会权衡一下web权限与数据库信息,哪个是我们所需要的。当需要的仅为数据库某个表的数据,如会员信息,而我们又没有得到数据库管理权限,无法直接导出数据,可以考虑利用注入逐个暴出数据导出,这里分享的小方法便是利用burp使得这个过程简单化。像检测到注入后使用穿山甲,sqlmap等dump数据库信息时,毕竟有诸多限制。穿山甲可以逐条跑,但是程序容易崩溃。至于sqlmap,个人使用时感觉有时速度不佳,而burp则解决这个问题。
以本地搭建环境为例,注射点为
http://192.168.191.155/dvwa/vulnerabilities/sqli/?id=1' union select user,password from users limit 0,1--+&Submit=Submit#
这里说明一下,此处借用dvwa平台,可以直接union select user,password from users 爆出所有账号,加上limit 0,1只是模拟我们dump数据的环境。Burp的基础使用这里也不再多言,使用burp截获到browser提交的数据包右键Send to intruder。在position处取消所有$符号,因为我们逐条dump数据,payload仅修改limit $1$,1即可。为方便存储获取的数据,设置options选项卡下的grep部分。切换到extract子选项卡,添加grep。可以看到,此处添加First name:和Surname:两个可以理解为特征字符的text,而后,在stop capturing at后更改为<。特征字符在不同环境下是要自己修改的,方法大家应该都晓得,这样总会有一处返回数据为我们所需。完成上面过程后,start attack即可。最后就是保存dump出的数据了。如下图,勾选上有价值的列,save保存到文件即可。最后提一点,对于像穿山甲等工具跑出的注射点,手工难以检测出时,使用WSExplorer直接抓取数据包分析即可。个人感觉,使用burp脱数据的优势无外乎二,一是burp可根据不同的测试环境较快的自由定制,自由度高;二是burp有相对较高的效率,这方面可以完败穿山甲等工具。当然,这一过程也可自行利用脚本实现。
转: