神兵利器

被动式SQL注入神器总结

字号+ 作者:kiang70 来源:转载 2016-11-25 10:39 我要评论( )

今天这个事吧,得从白(cheng)帽(xu)子(yuan)的生活状态说起,一说起 白帽 子、 程序猿吧,人们的刻板印象就是顶着比啤酒瓶底儿还厚的眼镜,一副生无可恋的样子盯......

今天这个事吧,得从白(cheng)帽(xu)子(yuan)的生活状态说起,一说起白帽子、 程序猿吧,人们的刻板印象就是顶着比啤酒瓶底儿还厚的眼镜,一副生无可恋的样子盯着电脑,基友看不过去了,拉着去海边钓鱼,你别说,还钓着一条美人鱼,就 上身是美女下身是鱼的那种。结果白帽子竟然把美人鱼放了,基友问:“你虎啊!为什么把美人鱼放了???”,白帽子一脸不屑的说:“哼!都没有 API……”。注定孤独一生啊也不怪人说,大伙一定有过彻夜刷洞,刷到两眼昏花的经历。什么?你没有?那你要么还没入门,要么就是手握神器的大神,躺着就把洞挖了。我们今天要介绍的就是这种神器,想知道是啥不?里边请吧。。。。
0X01前言
随着研究的深入,有分享精神的大牛逐步放出了一些自动化的安全检测工具,就SQL-inject而言大体有以下三种工具

  1. 通过burpsuit代理
复制代码
基本原理就是流量通过代理-->扫描模块(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
  1. pip install tornado
复制代码
安装PHP+Mysql环境
如果是Windows,建议使用phpStudy等集成系统。解压后将所有文件复制到根目录!www文件夹内

新建数据库pscan,导入数据pscan.sql

修改配置文件,修改/root/conn.php中的数据库信息
  1. $conn=mysql_connect("127.0.0.1:3306",'root','usbw');
复制代码

修改 ./proxy/isqlmap.py 改成你自己的主机地址和端口
  1. self.webserver="http://localhost:88/"
复制代码

修改./proxy/task.py 改成你的host地址
  1. <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节点 ,格式为
  1. http://127.0.0.1:8775 (不需要最后一个/)
复制代码

浏览器设置代理,与burpsuit代理设置相同,代理端口在proxy_io.py中修改,默认为8080
  1. http 127.0.0.1 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界面展示结果
部     署:
安装所需模块
  1. pip install peewee
复制代码
下载项目文件
  1. git clone https://github.com/OneSourceCat/sqli-proxy.git
复制代码



创建本地数据库sqli(不用建表,程序自建),相关数据库配置在config.py文件中,分别对sqlmapapi的server和数据进行配置:



blacklist.txt是配置忽略域名,每行一个,不允许存在空行:
  1. www.baidu.com
复制代码



运行sqlmapapi和proxy.py即可
  1. python sqlmapapi.py -s
复制代码


设置浏览器代理同上,设置为.而后正常浏览网页,后端便开始检测注入。
  1. 127.0.0.1 8080
复制代码

检测到注入后会存入数据库


3、SQLi-Hunter
项目地址:https://github.com/zt2/sqli-hunter
所需环境:ruby+python(SQLmap)
优     点:轻便、部署方便
缺     点:不支持分布式

部     署:
  1. git clone https://github.com/zt2/sqli-hunter.git
复制代码

安装bundle(kali2.0自带,无需安装)
  1. gem install bundle
  2. bundle install
复制代码
开启sqlmapapi
  1. python sqlmapapi.py -s
复制代码
运行sqli-hunter
  1. ruby sqli-hunter.rb -s -p 8080
复制代码
设置浏览器代理后,正常浏览网页,后台检测注入。
  1. 127.0.0.1 8080
复制代码


sqli-hunter的另外一个优点就是和SQLmap融合非常好,支持很多SQLMAP选项。
  1. sqli-hunter git:(master) ruby sqli-hunter.rb
  2.  
  3. _____ _____ __    _     _____         _
  4. |   __|     |  |  |_|___|  |  |_ _ ___| |_ ___ ___
  5. |__   |  |  |  |__| |___|     | | |   |  _| -_|  _|
  6. |_____|__  _|_____|_|   |__|__|___|_|_|_| |___|_|
  7.          |__|
  8.  
  9.       sqlmap api wrapper by ztz (ztz@ztz.me)
  10.  
  11. Usage: sqli-hunter.rb [options]
  12.  
  13. Common options:
  14.     -p, --port=<PORT>                Port of the Proxy-Server (default is 8888)
  15.         --api-host=<HOST>            Host of the sqlmapapi (default is localhost:8775)
  16.     -s, --save=<SAVE PATH>           Specify the path for request files (default is /tmp)
  17.     -v <VERBOSE>                     Verbosity level: 0-3 (default 1)
  18.         --version                    Show version
  19.  
  20. sqlmap options
  21.         --technique=<TECH>           SQL injection techniques to use (default "BEUSTQ")
  22.         --threads=<THREADS>          Max number of concurrent HTTP(s) requests (default 5)
  23.         --dbms=<DBMS>                Force back-end DBMS to this value
  24.         --os=<OS>                    Force back-end DBMS operating system to this value
  25.         --tamper=<TAMPER>            Use given script(s) for tampering injection data
  26.         --level=<LEVEL>              Level of tests to perform (1-5, default 1)
  27.         --risk=<RISK>                Risk of tests to perform (0-3, default 1)
  28.         --mobile                     Imitate smartphone through HTTP User-Agent header
  29.         --smart                      Conduct through tests only if positive heuristic(s)
复制代码
例如:
  1. ruby sqli-hunter.rb -v 3 --dbms=mysql --threads=10
复制代码
设置-v 3 获得更加详细的检测内容 检测结果根据提示,使用
  1. python sqlmap.py -r /tmp/c94863efe7bf03459aea27877426dada
复制代码


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


 

火狐截图_2015-12-05T10-08-52.565Z.png
 

firfox1.jpg (77.4 KB, 下载次数: 31)

 

firfox1.jpg
 

sqlinjec.jpg (80.54 KB, 下载次数: 22)

 

sqlinjec.jpg

本文来自: 蜗蜗侠's Blog-关注网络安全 http://blog.icxun.cn/Tools/282.html

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Burp, Sqlmap进行自动化SQL注入渗透测试

    Burp, Sqlmap进行自动化SQL注入渗透测试

    2017-03-09 14:03

  • 跟着注入工具学习sql注入

    跟着注入工具学习sql注入

    2016-11-25 08:57

网友点评
暂时未开启评论功能~