关于SQLiDetector

SQLiDetector是一款功能强大的SQL注入漏洞检测工具,该工具支持BurpBouty配置文件,可以帮助广大研究人员通过发送多个请求(包含14种Payload)并检查不同数据库的152个正则表达式模式来检测基于错误的SQL注入漏洞。

功能介绍

该工具的主要目标是帮助研究人员通过使用不同的Payload来扫描基于错误的SQL注入漏洞,例如:

'123

''123

`123

")123

"))123

`)123

`))123

'))123

')123"123

[]123

""123

'"123

"'123

\123

并且支持针对不同数据库的152中错误正则表达式模式。

工具运行流程

1、运行子域名搜索工具;

2、将所有收集到的子域名传递给httpx或httprobe来收集活动子域;

3、使用你的链接和URL工具获取所有的waybackurl,如waybackurl、gau、gauplus等;

4、使用URO工具对其进行过滤并降低噪声;

5、获取仅包含参数的所有链接,可以使用grep或gf工具;

6、将最终的URL结果文件传递给SQLiDetector并进行测试;

最终的URL结果文件内容类似如下:

https://aykalam.com?x=test&y=fortest

http://test.com?parameter=ayhaga

工具运行机制

该工具与其他类似SQL注入检测工具的区别在于,如果我们拿到了一个类似下列形式的链接:

https://example.com?file=aykalam&username=eslam3kl

即拥有了两个参数,那么该工具将会创建两个可能存在漏洞的URL地址。

1、下列形式的地址适用于每一个Payload:

https://example.com?file=123'&username=eslam3kl

https://example.com?file=aykalam&username=123'

2、工具将会对每一个URL链接发送一个请求,并使用正则表达式检测是否匹配其中某个模式;

3、针对任何包含漏洞的链接地址,工具将会在单独的文件中进行过程存储;

工具安装和使用

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/eslam3kl/SQLiDetector.git

然后运行下列命令安装工具所需的依赖组件:

~/eslam3kl/SQLiDetector# pip3 install -r requirements.txt

接下来就可以运行该工具了:

# cat urls.txt

http://testphp.vulnweb.com/artists.php?artist=1

 

# python3 sqlidetector.py -h

usage: sqlidetector.py [-h] -f FILE [-w WORKERS] [-p PROXY] [-t TIMEOUT] [-o OUTPUT]

A simple tool to detect SQL errors

optional arguments:

  -h, --help            show this help message and exit]

  -f FILE, --file FILE  [File of the urls]

  -w WORKERS, --workers [WORKERS Number of threads]

  -p PROXY, --proxy [PROXY Proxy host]

  -t TIMEOUT, --timeout [TIMEOUT Connection timeout]

  -o OUTPUT, --output [OUTPUT [Output file]

 

# python3 sqlidetector.py -f urls.txt -w 50 -o output.txt -t 10

BurpBounty模块

我们还创建了一个BurpBounty配置文件,它会使用相同Payload并在不同的位置注入,例如:参数名、参数值、Header和路径。


工具运行结果

项目地址

SQLiDetector:【GitHub传送门

参考资料

https://github.com/sqlmapproject/sqlmap/blob/master/data/xml/errors.xml

本文作者:Alpha_h4ck, 转自FreeBuf