今天这个事吧,得从白(cheng)帽(xu)子(yuan)的生活状态说起,一说起白帽子、 程序猿吧,人们的刻板印象就是顶着比啤酒瓶底儿还厚的眼镜,一副生无可恋的样子盯着电脑,基友看不过去了,拉着去海边钓鱼,你别说,还钓着一条美人鱼,就 上身是美女下身是鱼的那种。结果白帽子竟然把美人鱼放了,基友问:“你虎啊!为什么把美人鱼放了???”,白帽子一脸不屑的说:“哼!都没有 API……”。注定孤独一生啊 也不怪人说,大伙一定有过彻夜刷洞,刷到两眼昏花的经历。什么?你没有?那你要么还没入门,要么就是手握神器的大神,躺着就把洞挖了。我们今天要介绍的就是这种神器,想知道是啥不?里边请吧。。。。
0X01前言
随着研究的深入,有分享精神的大牛逐步放出了一些自动化的安全检测工具,就SQL-inject而言大体有以下三种工具
基本原理就是流量通过代理-->扫描模块(sqlmapapi)-->返回结果如数据库-->UI显示(可选),我们今天介绍的三款工具都属于第二种,通过脚本代理,并且都是基于SQLmapapi的。分别是Matt大牛的GourdScan、路由乙放出的Sqli-proxy、五道口杀气放出的SQLi-Hunter。
0X02 部署及测试
以下测试环境均为GourdScan在Windows,其他在Kali2.0
1、GourdScan
项目地址:https://github.com/code-scan/GourdScan
所需环境:python+PHP+MYSQL
优 点:支持分布式、有webUI界面展示结果
缺 点:部署不太方便
流 程 图:
部 署:有些童鞋反应GourdScan部署不太方便,其实原理搞明白了,也没什么难得。
安装tornado
安装PHP+Mysql环境
如果是Windows,建议使用phpStudy等集成系统。解压后将所有文件复制到根目录!www文件夹内
新建数据库pscan,导入数据pscan.sql
修改配置文件,修改/root/conn.php中的数据库信息
-
$conn=mysql_connect("127.0.0.1:3306",'root','usbw');
复制代码
修改 ./proxy/isqlmap.py 改成你自己的主机地址和端口
-
self.webserver="http://localhost:88/"
复制代码
修改./proxy/task.py 改成你的host地址
-
<div>def update(): </div><div> url="http://localhost:88/api.php?type=sqlmap_update"</div><div> urllib2.urlopen(url).read() </div><div>def api_get(): </div><div> url="http://localhost:88/api.php?type=api_get"</div><div> data=urllib2.urlopen(url).read()</div>
复制代码
运行run_proxy.bat run_deamo.bat
打开 http://localhost:88/config.php 在list里面添加sqlmapapi节点 ,格式为
-
http://127.0.0.1:8775 (不需要最后一个/)
复制代码
浏览器设置代理,与burpsuit代理设置相同,代理端口在proxy_io.py中修改,默认为8080
在http://localhost:88/config.php中增加sqlmapapi节点,分布式体现于此,节点越多,效率越高
之后就可以正常浏览页面,这里我用之前提到的btslab漏洞实验平台进行测试,当我点击有注入漏洞的页面时,我们的GourdScan已经默默的将其喂给sqlmapapi进行注入测试了,稍等几分钟,就有结果了。
测试过程中令我意外的是程序前端本身也有注入漏洞,并且被检测到了。我们可以在浏览器代理设置中排除127.0.0.1。
2、Sqli-proxy
项目地址:https://github.com/OneSourceCat/sqli-proxy
所需环境:python+MYSQL
优 点:轻便、部署方便
缺 点:不支持分布式、没有webUI界面展示结果
部 署:
安装所需模块
下载项目文件
-
git clone https://github.com/OneSourceCat/sqli-proxy.git
复制代码

创建本地数据库sqli(不用建表,程序自建),相关数据库配置在config.py文件中,分别对sqlmapapi的server和数据进行配置:
blacklist.txt是配置忽略域名,每行一个,不允许存在空行:
运行sqlmapapi和proxy.py即可
设置浏览器代理同上,设置为.而后正常浏览网页,后端便开始检测注入。
检测到注入后会存入数据库
3、SQLi-Hunter
项目地址:https://github.com/zt2/sqli-hunter
所需环境:ruby+python(SQLmap)
优 点:轻便、部署方便
缺 点:不支持分布式
部 署:
-
git clone https://github.com/zt2/sqli-hunter.git
复制代码
安装bundle(kali2.0自带,无需安装)
-
gem install bundle
-
bundle install
复制代码
开启sqlmapapi
运行sqli-hunter
-
ruby sqli-hunter.rb -s -p 8080
复制代码
设置浏览器代理后,正常浏览网页,后台检测注入。
sqli-hunter的另外一个优点就是和SQLmap融合非常好,支持很多SQLMAP选项。
-
sqli-hunter git:(master) ruby sqli-hunter.rb
-
-
_____ _____ __ _ _____ _
-
| __| | | |_|___| | |_ _ ___| |_ ___ ___
-
|__ | | | |__| |___| | | | | _| -_| _|
-
|_____|__ _|_____|_| |__|__|___|_|_|_| |___|_|
-
|__|
-
-
sqlmap api wrapper by ztz (ztz@ztz.me)
-
-
Usage: sqli-hunter.rb [options]
-
-
Common options:
-
-p, --port=<PORT> Port of the Proxy-Server (default is 8888)
-
--api-host=<HOST> Host of the sqlmapapi (default is localhost:8775)
-
-s, --save=<SAVE PATH> Specify the path for request files (default is /tmp)
-
-v <VERBOSE> Verbosity level: 0-3 (default 1)
-
--version Show version
-
-
sqlmap options
-
--technique=<TECH> SQL injection techniques to use (default "BEUSTQ")
-
--threads=<THREADS> Max number of concurrent HTTP(s) requests (default 5)
-
--dbms=<DBMS> Force back-end DBMS to this value
-
--os=<OS> Force back-end DBMS operating system to this value
-
--tamper=<TAMPER> Use given script(s) for tampering injection data
-
--level=<LEVEL> Level of tests to perform (1-5, default 1)
-
--risk=<RISK> Risk of tests to perform (0-3, default 1)
-
--mobile Imitate smartphone through HTTP User-Agent header
-
--smart Conduct through tests only if positive heuristic(s)
复制代码
例如:
-
ruby sqli-hunter.rb -v 3 --dbms=mysql --threads=10
复制代码
设置-v 3 获得更加详细的检测内容 检测结果根据提示,使用
-
python sqlmap.py -r /tmp/c94863efe7bf03459aea27877426dada
复制代码

0X03 结语 这三款工具,我认为都可以成为神器,都能达到“躺着就把洞挖了”的效果,各有特点,也都有改进的空间,所以小伙伴们苦练python等本领,站在巨人的肩 膀上,打造属于自己神器。其实,除此之外,还有基于burpsuit的代理检测工具,在此按下不表,留给大家研究吧。
另外,说几句题外话,可能我们在学习过程中会遇到各种坑,希望我们都能耐着性子一一克服,遇到的坑多,是因为我们技术还不够过硬,越往后坑越少。不忘初心,方得始终。就这样,祝好!
-
-
firfox1.jpg (77.4 KB, 下载次数: 31)
-
-
sqlinjec.jpg (80.54 KB, 下载次数: 22)
(责任编辑:蜗蜗侠) |