ImageVerifierCode 换一换
格式:DOCX , 页数:19 ,大小:344.55KB ,
资源ID:6567590      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/6567590.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(超级SQL注入工具使用说明书V1227.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

超级SQL注入工具使用说明书V1227.docx

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

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

3、打开程序在基础配置里面填写需要注入的域名或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注入、错误显示注入,已基本覆盖全部注入获取

4、数据方式。延时注入可以选择Bool盲注,在判断方式中选择时间判断,目前延时只支持mysql数据库。1.6.1. Bool盲注Bool盲注利用数据库的阿斯特码(ASCII码)或Unicode、Hex等编码将目标数据转换成数字,利用And条件来判断此数字的值,判断完成后根据对应编码转换成字符串。目前Bool盲注支持Access、MySQL5、SQLServer、Oracle等数据库,并支持中文、日文、繁体中文等世界各种语言。解决了各种注入工具在盲注环境无法获取中文等多字节编码的字符。1.6.2. Union注入Union注入利用数据库的Union联合查询来获取数据。目前盲注环境支持Access、M

5、ySQL5、SQLServer、Oracle等数据库。1.6.3. 错误显示注入错误显示注入利用数据库在完成某项操作时,在程序出现错误时将错误信息显示出来进行注入获取目标数据。由于错误显示的字符有长度限制,所以比Union注入方式稍慢,MySQL错误信息显示大约最长为64个字符,Oracle错误显示大约最长约为256个字符,SQLServer错误信息显示大约最长为2030个字符。目前盲注支持MySQL5、SQLServer、Oracle等数据库。Access不支持错误显示注入。1.7. 数据库判断数据库类型,选择对应的数据库。1.8. 线程选择程序同时能运行的线程数量,默认10个线程。1.9.

6、 重试程序发送一个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发包数据

7、抓取填写到这里,可使用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

8、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. 编码标记选择数据包中需

9、要使用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. 获取

10、列点击获取数据列,程序将获取对应表的列。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读文

11、件在Mysql的账户拥有文件读写权限下(一般情况下只有ROOT账户拥有),可在盲注、错误显示、Union注入下,读取地址路径下的文本文件内容。填写路径,选择MySQL Load_File读文件,点击开始即可。4.2. MySQL Union写文件在Mysql的账户拥有文件读写权限下(一般情况下只有ROOT账户拥有),可在Union注入下,向磁盘写文本文件。4.3. SQLServerFileSystemObject写文件在SA权限下,可利用FileSystemObject写文件,写文件内容注入不要超过4000字节,同时如何是GET请求提交注意,一般GET提交不能超过1024个字节,所以如果没写

12、成功,看看你提交的数据是否太长。4.4. SQLServerSp_MakeWebTask写文件在SA权限下,可利用Sp_MakeWebTask写文件,写文件内容注入不要超过4000字节,同时如何是GET请求提交注意,一般GET提交不能超过1024个字节,所以如果没写成功,看看你提交的数据是否太长。相比FileSystemObject成功率较低。4.5. SQLServer利用备份数据库写文件在SA权限下,可利用Back DataBase备份数据库方法,将内容备份到文件中。此方法写入文件后,此文件属于数据库备份文件,所以有一些其他多余数据。4.6. SQLServerFileSystemObje

13、ct读文件在SA权限下,可利用FileSystemObject读文件,可在盲注、显错注入、Union注入下读取文件。读取文件长度不能超过4000字节。5. 命令执行目前此功能只支持SQLServer,在sa权限下,可利用xp_cmdshell执行操作系统命令,可选择是否回显执行结果。可在盲注、显错注入、Union注入下获取回显结果。执行此功能需支持多语句。6. 注入绕过6.1. 字符替换替换编辑编码内的字符,需注意的,默认系统设置在URL编码前处理绕过字符,如果没有选择在URL编码前处理绕过字符,那么替换的字符就是URL编码后的字符,如替换空格成/*/,那么填写的就是“%20”替换成“%2f*

14、%2f”。6.2. 包含关键字适用于MySQL数据库的简绕过,可人工测试可行后选择使用/*!*/包含关键字来绕过防护。6.3. 随机大写将编码标记内的字符进行随机大小写转换,绕过SQL注入防护。6.4. 发包延时将每个包发送后休息一定时间在发送,绕过一些防护。6.5. IP随机头在HTTP请求头中增加随机IP值,这里列出来常见的伪装IP头,可测试选择对应的头,程序会随机产生IP。6.6. Base64编码将编码范围内参数进行base64编码。7. 编码转换填写需要转换的字符,选择对应编码解码方法就行。8. 日志中心8.1. 数据包历史记录数据包历史记录记录了程序每一个HTTP的请求与相应,可用

15、于错误排查。如需要提高性能,可在菜单中的系统设置中选择关闭HTTP发包日志记录。8.2. 数据包详情在数据包历史记录中选择一条记录,程序将自动将详细信息进行显示,可以查看请求响应数据,在响应中同时按“Ctrl+Alt”键可以弹出查找关键字面板,进行关键字查找。9. 批量扫描注入导入域名或链接,选择爬行或检测注入。10. 停止注入10.1. 立即停止当前功能下点击右键,点击立即停止,程序将停止当前所有线程。11. 系统设置开启MySQL多字节取数据,将判断数据是否有中文。开启自动检测更新,程序将自动检测更新。开启底部日志,程序将在底部显示日志信息。开启发包日志,程序将记录HTTP每一个发包日志。

16、开启在URL编码前处理绕过字符,所有绕过字符处理将处理后再进行URL编码。软件关闭自动保存配置,软件关闭时是否自动保存配置。最大列数,自动识别注入时,自动进行Union测试时的最大测试列。单域名最大爬行数,批量扫描注入时,如果选中爬行连接,一个域名爬行到最大链接数后将停止继续爬行链接。单域名最大扫描数,批量扫描注入时,单个域名最大检测注入链接数。12. 我如何开始注入?12.1. 自动模式自动模式适合网页响应内容比较固定的注入检测,自动模式只支持GET或者POST传递的参数的注入检测,不支持HTTP请求属性的注入,如Referer注入。首先开始自动识别注入时,需要配置基础信息,地址、端口、超时

17、、编码、线程、重试次数。 其次需要配置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型请求数据包,并自动设置IP地址和端口。二、 首先生成GET数据包模板,修改请求URL地址,这里取URL的根目录“/mysql.jsp?id=1”,然后修

18、改Host为“127.0.0.1:8090”即可。 最后点击识别注入,就可以开始自动识别注入了,如果识别成功,会自动设置数据库类型和注入类型,并自动进行注入标记,这时候只需要切换到数据中心选择对应功能去获取相关数据即可。12.2. 手动模式12.2.1. 基础配置手动模式相对自动模式配置相对复杂,但自动模式可以对付各种情况各种位置的注入。首先需要完成基本配置,基本配置参考自动模式的整个过程。然后需要人工对注入进行判断后在选择对应数据库和注入类型,并进行标记,那么如何进行判断和标记呢?首先需要判断注入的类型,比如数字型、字符型、搜索型等,然后判断对应的数据库。判断完成后,需要对注入位置进行标记,

19、如何判断和标记,请往下看!12.2.2. 判断注入类型12.2.2.1. 通用数字型 URL地址:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 判断注入:改变参数id=1 and 1=1 和 id=1 and 1=2进行测试,如果1=1页面显示正常和原页面一样,并且1=2时页面报错或者页面部分数据显示不正常,那么可以确定此处为数字型注入。 判断数据库类型:使用exists函数判断查询对应数据库的系统表是否存在,根据页面是否正常来判断对应数据库类型。MySQL:http:/127.0.0.1:8090/JavaSQLInjection/

20、mysql.jsp?id=1 and exists(select 1 from information_schema.tables)SQLServer:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 and exists(select 1 from sysobjects)Access:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 and exists(select 1 from MSysAccessObjects)Oracle:http:/127.0.0.1:8090/Java

21、SQLInjection/mysql.jsp?id=1 and exists(select 1 from user_tables)12.2.2.2. 通用字符型 URL地址:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 判断注入:改变参数id=1 and 1=1 and 1=1 和id=1 and 1=1 and 1=2进行测试,或者利用注释符号“#”或者“ ”,当然特殊字符记得进行URL编码,“#”URL编码后是“%23”,“ ”编码后是“%20”,利用注释符,那么可以改变参数为id=1 and 1=1%23和id=1 and 1=

22、2%23来进行测试,如果1=1页面显示正常和原页面一样,并且1=2时页面报错或者页面部分数据显示不正常,那么可以确定此处为字符型注入。 判断数据库类型:使用exists函数判断查询对应数据库的系统表是否存在,根据页面是否正常来判断对应数据库类型。MySQL:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 and exists(select 1 from information_schema.tables) and a=aSQLServer:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?i

23、d=1 and exists(select 1 from sysobjects) and a=aAccess:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 and exists(select 1 from MSysAccessObjects) and a=aOracle:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 and exists(select 1 from user_tables) and a=a12.2.2.3. 通用搜索型 URL地址:http:/127.0.0.

24、1:8090/JavaSQLInjection/mysql.jsp?id=1 判断注入:改变参数id=1% and 1=1 and %= 和id=1% and 1=2 and %=进行测试,或者利用注释符号“#”或者“ ”,当然特殊字符记得进行URL编码,“#”URL编码后是“%23”,“ ”编码后是“%20”,利用注释符,那么可以改变参数为id=1% and 1=1%23和id=1% and 1=2%23来进行测试,如果1=1页面显示正常和原页面一样,并且1=2时页面报错或者页面部分数据显示不正常,那么可以确定此处为搜索型注入。 判断数据库类型:使用exists函数判断查询对应数据库的系统表

25、是否存在,根据页面是否正常来判断对应数据库类型。MySQL:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1% and exists(select 1 from information_schema.tables) and %=SQLServer:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1% and exists(select 1 from sysobjects) and %=Access:http:/127.0.0.1:8090/JavaSQLInjection/mysql.

26、jsp?id=1% and exists(select 1 from MSysAccessObjects) and %=Oracle:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1% and exists(select 1 from user_tables) and %=12.2.2.4. OR类型 URL地址:http:/127.0.0.1:8090/JavaSQLInjection/login.jsp?username=1&pass=1 判断注入:改变参数username=1 or(1=1 and 1=1) and 1=1 和use

27、rname=1 or(1=1 and 1=2) and 1=1进行测试,或者利用注释符号“#”或者“ ”,当然特殊字符记得进行URL编码,“#”URL编码后是“%23”,“ ”编码后是“%20”,利用注释符,那么可以改变参数为1 or(1=1 and 1=1)%23和1 or(1=1 and 1=2)%23来进行测试,如果1=1页面显示正常和原页面一样,并且1=2时页面报错或者页面部分数据显示不正常,那么可以确定此处为字符型注入。 判断数据库类型:使用exists函数判断查询对应数据库的系统表是否存在,根据页面是否正常来判断对应数据库类型。MySQL:http:/127.0.0.1:8090/

28、JavaSQLInjection/mysql.jsp?username=1 or(1=1 and exists(select 1 from information_schema.tables) and a=a&password=1SQLServer:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 or(1=1 and exists(select 1 from sysobjects) and a=aAccess:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 or(1=1 and

29、exists(select 1 from MSysAccessObjects) and a=aOracle:http:/127.0.0.1:8090/JavaSQLInjection/mysql.jsp?id=1 or(1=1 and exists(select 1 from user_tables) and a=a12.2.3. 注入标记很简单,首先选中需要进行URL编码的参数值,选择需要进行URL编码的参数后再选中之前判断注入类型中的“and 1=1”,然后点击右边的标记注入按钮,或者直接删除“and 1=1”后,在对应的位置插入注入标记。12.2.4. 获取数据配置12.2.4.1. B

30、ool盲注取数据配置12.2.4.1.1. 基本配置Bool盲注配置依靠关键字、状态码、响应时间等因素进行逻辑上的真假判断。 关键字判断关键字是正常逻辑上为真,页面上存在的字符,而逻辑上为假,页面上没有出现的字符。即“and 1=1”出现的字符,而“and 1=2”时未出现的字符。示例:正常的数字型注入:盲注关键字可选择and 1=1时,页面上出现的关键字,and 1=2时没有出现的关键字,比如“SQL” 、“我是SQL”、“SQL注入”。一个原则,只要确保这个词是1=1条件是页面出现这个关键词,而1=2时不出现。 状态码判断状态码判断原理同上,只是条件变成了and 1=1时出现这个状态码,二

31、and 1=2时不出现这个状态码。选择状态码判断后,程序盲注的关键字将依靠状态码判断,即“and 1=1”时HTTP请求的状态码为此关键字(200、403、302、500等),而“and 1=2”时为其他状态码。 时间判断:需人工判断网页平均响应时间,设置一个时间阀值,当页面响应时间超过这个阀值,证明当前判断是正确的,否则不正确。12.2.4.1.2. 关键字取反关键字取反选择后,程序将反过来取注入的判断依据,比如即“and 1=2”出现的字符,而“and 1=1”时未出现的字符。如果选择了状态码,即“and 1=2”出现的状态码,而“and 1=1”时未为其他状态码。12.2.4.1.3. 验证关键字是否正确点击关键字可以验证关键字是否配置正确。12.2.4.2. 错

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1