超级SQL注入工具(起步篇)

辣条姐   ·   发表于 2020-12-21 15:26:34   ·   安全工具

超级SQL注入工具:

程序运行需要安装. Net Framework 2.0。运行环境XP、Win7,Win10环境已测试,其他环境请自测

程序简介

1. 超级SQL注入工具(SSQLInjection)是一款基于HTTP协议自组包的SQL注入工具,支持出现在HTTP协议任意位置的SQL注入,支持各种类型的SQL注入,
   支持HTTPS模式注入。
2. 超级SQL注入工具目前支持Bool型盲注、错误显示注入、Union注入,支持Access、MySQL5以上版本、SQLServer、Oracle等数据库。
3. 超级SQL注入工具采用C#开发,底层采用Socket发包进行HTTP交互,极大的提升了发包效率,相比C#自带的HttpWebRequest速度提升2-5倍。
4. 超级SQL注入工具支持盲注环境获取世界各国语言数据,解决了各种常见注入工具在盲注环境下无法支持中文等多字节编码的数据。

工具特点:

1.支持任意地点出现的任意SQL注入
2.支持各种语言环境。大多数注入工具在盲注下,无法获取中文等多字节编码字符内容,本工具可完美解决。
3.支持注入数据发包记录。让你了解程序是如何注入,有助于快速学习和找出注入问题。
4.依靠关键字进行盲注,可通过HTTP相应状态码判断,还可以通过关键字取反功能,反过来取关键字。
程序运行需要安装. Net Framework 4.0。运行环境Win7,Win8环境已测试,其他环境请自测。

=================================================================================

1.基础信息配置

1.1 地址

打开程序在基础配置里面填写需要注入地址的域名或IP地址。

1.2.端口

打开程序在基础配置里面填写需要注入的域名或IP地址的端口。

1.3.SSL

如果是HTTPS传输的网页需要选择SSL,选择SSL会切换到443端口,如果是其他端口请修改端口地址。

1.4.超时

程序使用Socket传输,每个HTTP请求的超时时间,如果超过此时间,程序将放弃本次请求,单位是秒。

1.5.编码

程序在获取HTML网页时,采用的解码方式,程序会自动识别网页编码,如果识别失败,将采用此编码进行解码。编码可以在HTTP相应头的Content-Type或HTML头里面查看“charset=xxx”。

1.6.注入类型

程序目前支持Bool盲注、Union注入、错误显示注入,已基本覆盖全部注入获取数据方式。
延时注入可以选择Bool盲注,在判断方式中选择时间判断,目前延时只支持mysql数据库。

1.6.1.Bool盲注

Bool盲注利用数据库的阿斯特码(ASCII码)或Unicode、Hex等编码将目标数据转换成数字,利用And条件来判断此数字的值,判断完成后根据对应编码转换成字符串。
目前Bool盲注支持Access、MySQL5、SQLServer、Oracle等数据库,并支持中文、日文、繁体中文等世界各种语言。解决了各种注入工具在盲注环境无法获取中文等多字节编码的字符。

1.6.2.Union注入

Union注入利用数据库的Union联合查询来获取数据。
目前盲注环境支持Access、MySQL5、SQLServer、Oracle等数据库。 

1.6.3.错误显示注入

错误显示注入利用数据库在完成某项操作时,在程序出现错误时将错误信息显示出来进行注入获取目标数据。由于错误显示的字符有长度限制,所以比Union注入方式稍慢,MySQL错误信息显示大约最长为64个字符,Oracle错误显示大约最长约为256个字符,SQLServer错误信息显示大约最长为2030个字符。
目前盲注支持MySQL5、SQLServer、Oracle等数据库。Access不支持错误显示注入。

1.7.数据库

判断数据库类型,选择对应的数据库。

1.8.线程

选择程序同时能运行的线程数量,默认10个线程。

1.9.重试

程序发送一个HTTP包失败后,尝试继续发包的次数。

1.10.自动识别

填好数据包,填写地址和端口即可自动进行注入识别,支持GET和POST参数自         动识别注入。

1.11.导出配置

点击导出配置,将选择需要导出程序配置信息的路径,程序将导出配置信息到      一个XML文件中,以后可以使用菜单中的导入配置来加载配置信息。

=================================================================================

2.注入中心

2.1.数据包

方法一:
在数据包中输入URL地址http://127.0.0.1:8090/mysql.jsp?id=1, 在数据包空白处单击鼠标右键,选择“根据URL生成数据包”,即可自动配置GET型请求数据包,并自动设置IP地址和端口。
方法二:
 使用抓包工具将HTTP发包数据抓取填写到这里,可使用Fiddler、Burp Suite等抓包工具,或手工配置数据包。
注意事项:如果是POST提交数据,必须有Content-Length属性,程序才能自动计算长度。

2.2.注入设置

2.2.1.开启URL编码

开启URL编码后,程序将会把编码标记中的数据进行URL编码操作,建议选择,因为请求参数中如果有特殊字符,可能导致发包结果不一致。

2.2.2.302跟踪

默认未开启,开启后,程序遇到302重定向时,将请求重定向的目标地址。如果可以根据状态码判断注入时,可选中,下面关键字配置状态码,进行注入。

2.2.3.注入标记

通常手工注入使用”xxxx.asp?id=1 and 1=1”进行注入判断,那么这里选中“ and 1=1”点击标记注入,程序将在有注入的位置设置注入标记,程序注入时将标记替换成注入获取数据的代码。核心就是将我们测试语句中的“and 1=1”替换成标记。

示例:
标记其实就是选择payload放在那个位置
数字型: 1 and 1=1 把and 1=1替换成标记
字符型: 1’ and 1=1 and ‘1’=’1 把and 1=1替换成标记
字符型: 1’ and 1=1# 把and 1=1替换成标记
字符型: 1’ and 1=1— 把and 1=1替换成标记
搜索型: 1%’ and 1=1 and ‘%’=’ 把and 1=1替换成标记

2.2.4.编码标记

选择数据包中需要使用URL编码的字符,点击标记编码,程序将插入编码标记。程序将自动一配置好的编码方式进行编码。


2.2.5.注入取数据配置

参考我是如何开始注入章节的自动模式中的获取数据配置。

=================================================================================

3.数据中心

3.1.环境变量

3.1.1.获取环境变量

点击右键弹出菜单,点击获取环境变量程序将获取数据库的基础信息,Access数据库不支持此功能。


3.1.2.复制变量值

选中对应的变量,按右键复制值。

3.2.数据库信息

3.2.1.获取数据库

点击获取数据库,程序将获取全部数据库列表,Oracle将获取所有用户列表,Access没有库。

3.2.2.获取表

点击获取数据表,程序将获取对应数据库的表。

3.2.3.获取列

点击获取数据列,程序将获取对应表的列。

3.2.4.获取数据

获取开始数据,默认开始下标为0,即重第一条数据开始获取,获取条数可设置,但不能超过重下标开始的剩余行数。双击列名可进行排序操作。

3.2.5.编码设置

这里的编码设置用于Bool盲注取数据的配置,盲注如出现乱码,可以选择其他编码方式尝试获取数据,查看是否有乱码。这里编码主要用于数据库中Hex、Ascw、Unicode等编码函数的解码。

3.2.6.导出数据

点击导出数据将选择导出数据的磁盘路径,程序将自动导出数据。

3.2.7.添加节点

3.2.8.删除节点

3.2.9.修改节点

=================================================================================

4.文件操作

4.1.MySQL Load_File读文件

在Mysql的账户拥有文件读写权限下(一般情况下只有ROOT账户拥有),可在盲注、错误显示、Union注入下,读取地址路径下的文本文件内容。填写路径,选择MySQL Load_File读文件,点击开始即可。

4.2.MySQL Union写文件

在Mysql的账户拥有文件读写权限下(一般情况下只有ROOT账户拥有),可在Union注入下,向磁盘写文本文件。

4.3.SQLServer FileSystemObject写文件

在SA权限下,可利用FileSystemObject写文件,写文件内容注入不要超过4000字节,同时如何是GET请求提交注意,一般GET提交不能超过1024个字节,所以如果没写成功,看看你提交的数据是否太长。

4.4.SQLServer Sp_MakeWebTask写文件

在SA权限下,可利用Sp_MakeWebTask写文件,写文件内容注入不要超过4000字节,同时如何是GET请求提交注意,一般GET提交不能超过1024个字节,所以如果没写成功,看看你提交的数据是否太长。相比FileSystemObject成功率较低。

4.5.SQLServer利用备份数据库写文件

在SA权限下,可利用Back DataBase备份数据库方法,将内容备份到文件中。此方法写入文件后,此文件属于数据库备份文件,所以有一些其他多余数据。

4.6.SQLServer FileSystemObject读文件

在SA权限下,可利用FileSystemObject读文件,可在盲注、显错注入、Union注入下读取文件。读取文件长度不能超过4000字节。 

5.命令执行

目前此功能只支持SQLServer,在sa权限下,可利用xp_cmdshell执行操作系统命令,可选择是否回显执行结果。可在盲注、显错注入、Union注入下获取回显结果。执行此功能需支持多语句。

6.注入绕过

6.1.字符替换

替换编辑编码内的字符,需注意的,默认系统设置在URL编码前处理绕过字符,如果没有选择在URL编码前处理绕过字符,那么替换的字符就是URL编码后的字符,如替换空格成/**/,那么填写的就是“%20”替换成“%2f**%2f”。

6.2.包含关键字 6.2.包含关键字

    适用于MySQL数据库的绕过,可人工测试可行后选择使用/*!*/包含关键字来绕过防护。

6.3.随机大写

将编码标记内的字符进行随机大小写转换,绕过SQL注入防护。

6.4.发包延时

将每个包发送后休息一定时间在发送,绕过一些防护。

6.5.IP随机头

在HTTP请求头中增加随机IP值,这里列出来常见的伪装IP头,可测试选择对应的头,程序会随机产生IP。

6.6.Base64编码

将编码范围内参数进行base64编码。

7.编码转换

填写需要转换的字符,选择对应编码解码方法就行。

8.日志中心

8.1.数据包历史记录

数据包历史记录记录了程序每一个HTTP的请求与相应,可用于错误排查。如需要提高性能,可在菜单中的系统设置中选择关闭HTTP发包日志记录。

8.2.数据包详情

在数据包历史记录中选择一条记录,程序将自动将详细信息进行显示,可以查看请求响应数据,在响应中同时按“Ctrl+Alt”键可以弹出查找关键字面板,进行关键字查找。

9.批量扫描注入

导入域名或链接,选择爬行或检测注入。

10.停止注入

10.1.立即停止

当前功能下点击右键,点击立即停止,程序将停止当前所有线程。

11.系统设置

开启MySQL多字节取数据,将判断数据是否有中文。
开启自动检测更新,程序将自动检测更新。
开启底部日志,程序将在底部显示日志信息。
开启发包日志,程序将记录HTTP每一个发包日志。
开启在URL编码前处理绕过字符,所有绕过字符处理将处理后再进行URL编码。
软件关闭自动保存配置,软件关闭时是否自动保存配置。
最大列数,自动识别注入时,自动进行Union测试时的最大测试列。
单域名最大爬行数,批量扫描注入时,如果选中爬行连接,一个域名爬行到    最大链接数后将停止继续爬行链接。
单域名最大扫描数,批量扫描注入时,单个域名最大检测注入链接数。

==================================================

12.我如何开始注入?

12.1.自动模式

自动模式适合网页响应内容比较固定的注入检测,自动模式只支持GET或者POST传递的参数的注入检测,不支持HTTP请求属性的注入,如Referer注入。
首先开始自动识别注入时,需要配置基础信息,地址、端口、超时、编码、线程、重试次数。

其次需要配置HTTP请求数据包,可以在数据包文本框里按鼠标右键选择生成GET或POST数据模板,然后修改请求的URL地址和HOST及提交数据。
注入http://127.0.0.1:8090/mysql.jsp?id=1 示例数据包配置:

一、方法一
在数据包中输入URL地址http://127.0.0.1:8090/mysql.jsp?id=1,在数据包空白处单击鼠标右键,选择“根据URL生成数据包”,即可自动配置GET型请

方法二、
首先生成GET数据包模板,修改请求URL地址,这里取URL的根目录“/mysql.jsp?id=1”,然后修改Host为“127.0.0.1:8090”即可。


最后点击识别注入,就可以开始自动识别注入了,如果识别成功,会自动设置数据库类型和注入类型,并自动进行注入标记,这时候只需要切换到数据中心选择对应功能去获取相关数据即可。

如上是SQL工具的注入

写作不易,如果觉得文章学到了知识,用你的小手关注小学长诚昕,接下来继续为您更新更好的技术文章
用户名金币积分时间理由
奖励系统 100.00 0 2021-06-21 11:11:07 投稿满 10 赞奖励
奖励系统 50.00 0 2020-12-24 16:04:11 投稿满 5 赞奖励

打赏我,让我更有动力~

附件列表

超级sql注入.7z   文件大小:0.531M (下载次数:58)

2 条回复   |  直到 2021-6-16 | 2640 次浏览

辣条姐
发表于 2020-12-28

如果有问题,可以点点关注,后续持续更新!

评论列表

  • 加载数据中...

编写评论内容

Track-聂风
发表于 2021-6-16

不保证软件安全性,要用的同学请自查

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.