又一款代理式SQLi注入检测脚本sqli-proxy

相关的zone的帖子: 

SQLi-Hunter(五道口杀气):http://zone.wooyun.org/content/19049 

项目地址:https://github.com/zt2/sqli-hunter 

GourdScan(Matt):http://zone.wooyun.org/content/24172 

https://github.com/code-scan/GourdScan 


我先对这两个做下比较。 


SQLi-Hunter是ruby+python(SQLmap)的。 


GourdScan是python+PHP+MYSQL的。 


GourdScan比较SQLi-Hunter显得比较臃肿,因为环境比SQLi-Hunter难配置。 


但是GourdScan有两个优点是SQLi-Hunter所不具备的,一个是分布式,一个是web界面。 


接下来说说咱今天的主角有什么优势。 


sqli-proxy是采用python+MysqL的。 


sqli-proxy也是不支持分布式的。 


但是sqli-proxy比GourdScan和SQLi-Hunter轻巧,好安装。(PS:因为我觉得ruby是小日本的,一般windows装的少装mysql反而多一些,况且你菜刀里那麽多可以外联的mysql是干啥吃的。) 


sqli-proxy使用了sqlmapapi和基于tornado实现的http-proxy来探测上网的流量中是否存在SQL注入。 原理跟GourdScan一样。 


项目地址: 


https://github.com/OneSourceCat/sqli-proxy 


安装方法: 


git clone https://github.com/OneSourceCat/sqli-proxy.git 

pip install peewee 

pip install tornado 

pip install requests 


blacklist.txt是配置忽略域名,每行一个,不允许存在空行: 


例如: 

www.baidu.com 

www.qq.com 

www.sina.cn 

www.163.com 


配置: 


创建本地数据库sqli,相关数据库配置在config.py文件中,分别对sqlmapapi的server和数据进行配置,默认配置如下: 


mysql -uroot -p -e 'create database sqli' 


# sqlmapapi server config 

SERVER = 'http://127.0.0.1:8775' 


# database config 

host = '127.0.0.1' 

user = 'root' 

password = '' 

db_name = 'sqli' 

port = 3306 

charset = 'utf8' 


这里可以看情况酌情修改。 


运行: 


1、运行sqlmapapi和proxy.py即可: 


python sqlmapapi.py -s 

python proxy.py 8080 baidu.com 


python proxy.py [proxy-port] [detecting-domain] 默认端口为8080,domain为空。 


domain可以不指定。 


2、设置浏览器代理为: 


127.0.0.1:[8080/你配置过的端口] 


0x03 结果 


结果保存在sqli数据库中的sqlirecords表中,分为url和request_body。 


参考:http://zone.wooyun.org/content/28302

评论回复