SQL注入绕过技巧全解析实战版摘要SQL注入是Web安全领域最常见、危害最大的漏洞之一也是渗透测试中重点关注的对象。随着企业安全防护意识提升各类WAFWeb应用防火墙、输入过滤机制广泛应用常规SQL注入语句往往被拦截无法达到攻击效果。核心前提本文所有技巧仅用于合法授权的渗透测试严禁用于未授权系统攻击坚守网络安全法律法规违规操作需承担相应法律责任。一、SQL注入绕过核心认知新手必看在学习绕过技巧前需明确2个核心认知避免盲目操作绕过的本质不是“破解”防护而是“伪装”注入语句让防护机制过滤规则、WAF无法识别其为恶意注入同时保证注入语句能被数据库正常执行核心原则先判断过滤规则如过滤哪些关键字、特殊字符再针对性选择绕过方法“先探测、后绕过”避免盲目尝试导致被拦截、封禁IP。前置准备实战中需先通过基础注入语句如 ’ or 11–探测过滤情况明确防护规则——比如是否过滤 union、select、or 等关键字是否拦截特殊字符、、;再选择对应绕过技巧。二、高频SQL注入绕过技巧实战重点按场景分类按防护场景分为“输入过滤绕过”“WAF绕过”“编码绕过”三大类每个技巧配实战案例标注适用场景和注意事项新手可直接照搬测试。2.1 输入过滤绕过最基础适配简单过滤场景适用于企业自行开发的简单过滤机制如关键字替换、特殊字符拦截未部署专业WAF是新手入门最易掌握的绕过技巧。技巧1关键字大小写绕过适用场景过滤规则仅拦截小写关键字如 select、union、and、or未拦截大写/混合大小写。原理数据库对SQL语句的关键字不区分大小写如 SELECT 与 select 执行效果一致通过混合大小写伪装关键字绕过简单过滤。实战案例常规注入被拦截’ union select 1,2,3–绕过注入可执行’ UnIoN SeLeCt 1,2,3–进阶变体’ uNiOn sElEcT 1,database(),3–混合大小写更难被识别注意事项部分严格过滤会拦截“包含关键字”的内容此时单纯大小写绕过无效需结合其他技巧。技巧2关键字替换/拆分绕过适用场景过滤规则拦截完整关键字如 union、select但未拦截关键字拆分、替换后的内容。原理通过空格、注释、特殊符号拆分关键字或用同义关键字替换让过滤规则无法识别同时数据库能正常解析。实战案例3种常用变体空格拆分’ un ion se lect 1,2,3–关键字中间加空格拆分完整关键字注释拆分’ un//ion se//lect 1,2,3–用 /**/ 注释拆分数据库会忽略注释内容同义替换用 distinct 替换 select部分场景’ union distinct 1,2,3–用 替换 and|| 替换 or。注意事项注释拆分需注意数据库兼容性MySQL支持 /**/Access支持 ‘/* */’需根据目标数据库调整。技巧3特殊字符转义绕过适用场景过滤规则拦截单引号、双引号等特殊字符常用于闭合SQL语句。原理利用数据库支持的转义字符、编码将被拦截的特殊字符伪装实现闭合SQL语句。实战案例单引号绕过用 ’ 转义MySQL’ or 11– → ’ or 11–用 chr(39) 替换单引号SQL Serverchr(39)or 11–双引号绕过用 转义或用 chr(34) 替换SQL Server逗号绕过部分过滤会拦截逗号如 select 1,2用 join 替换select 1 join 2–。技巧4注释符绕过适用场景过滤规则拦截 --、# 等注释符用于截断SQL语句后面的内容。原理用数据库支持的其他注释符替换实现SQL语句截断避免后续内容干扰注入。实战案例适配不同数据库MySQL用 // 替换 --’ or 11//SQL Server用 – 两个减号加空格、/comment/ 替换’ or 11/test/Access用 ‘; 替换’ or 11;需确保后续语句不报错2.2 WAF绕过实战重点适配专业防护场景适用于目标系统部署了专业WAF如阿里云WAF、百度WAF、ModSecurity常规注入语句被拦截需通过WAF的检测漏洞实现绕过是渗透测试中高频用到的技巧。技巧5HTTP头注入绕过WAF适用场景WAF仅检测URL参数、表单提交的内容未检测HTTP请求头如User-Agent、Referer、Cookie。原理将注入语句放入HTTP请求头中绕过WAF对URL、表单的检测同时让后端代码读取请求头内容并代入SQL查询。实战案例User-Agent注入修改User-Agent为 ’ or 11–若后端代码用User-Agent作为查询条件即可触发注入Cookie注入修改Cookie参数如uid1’ or 11–若后端代码读取Cookie并代入SQL即可绕过WAFReferer注入修改Referer为 http://test.com’ or 11–适配后端依赖Referer的场景。注意事项需先探测后端是否读取HTTP头内容并代入SQL查询否则注入无效。技巧6参数污染绕过WAF适用场景WAF对单一参数的检测严格但对多参数叠加的检测存在漏洞可通过参数重复实现绕过。原理在URL中重复提交同一个参数将注入语句拆分到多个参数中WAF检测单一参数时未发现恶意内容而后端代码会合并参数内容触发注入。实战案例常规注入被WAF拦截http://test.com/?id1’ or 11–绕过注入http://test.com/?id1id’ or 11–重复id参数注入语句拆分到第二个id中进阶变体http://test.com/?id1’id or 11–拆分关键字进一步规避WAF检测技巧7畸形请求绕过WAF适用场景WAF对请求格式检测严格通过构造畸形请求干扰WAF的解析实现绕过。原理利用WAF与后端服务器的解析差异构造畸形的URL、请求体让WAF无法正常解析注入语句而后端服务器能正常解析执行。实战案例3种常用畸形请求URL编码畸形对注入语句进行多次URL编码如 ’ 编码为 %27再编码为 %2527http://test.com/?id1%2527 or 11–空格畸形用 %09、%0A、%0B 等不可见字符替换空格’ or%0A11–请求体畸形POST请求中在注入语句前后添加多余字符如空格、换行干扰WAF检测。技巧8白名单绕过WAF适用场景WAF配置了IP白名单、域名白名单如信任内部IP、特定域名对来自白名单的请求不进行严格检测。原理通过伪造白名单IP、Referer域名让WAF认为请求来自信任来源从而绕过检测。实战案例伪造IP修改X-Forwarded-For、X-Real-IP为WAF白名单IP如192.168.1.1再提交注入语句伪造Referer修改Referer为目标系统的信任域名如http://internal.test.com再提交注入请求。注意事项需先探测WAF的白名单规则可通过多次测试不同IP、域名判断白名单范围。2.3 编码绕过通用技巧适配各类防护场景通过对注入语句进行编码伪装恶意内容绕过过滤规则和WAF检测适用于各类防护场景是渗透测试中必备的通用技巧。技巧9URL编码绕过适用场景过滤规则拦截特殊字符、关键字WAF对未编码的恶意内容检测严格。原理将注入语句中的特殊字符、关键字进行URL编码ASCII编码WAF可能未对编码内容进行解码检测而后端服务器会自动解码执行。实战案例单引号 ’ → %27注入语句1%27 or 11–空格 → %20、%09、%0A注入语句1%27%0Aor%2011–关键字编码select → %73%65%6C%65%63%74注入语句1%27%20%73%65%6C%65%63%74%201,2–注意事项部分WAF会对URL编码进行解码检测此时可尝试多次编码如双重URL编码。技巧10Unicode编码绕过适用场景过滤规则拦截关键字WAF未对Unicode编码进行检测后端服务器支持Unicode解码。原理将关键字、特殊字符转换为Unicode编码伪装恶意内容绕过检测。实战案例or → \u006F\u0072注入语句1’ \u006F\u0072 11–select → \u0073\u0065\u006C\u0065\u0063\u0074注入语句1’ \u0073\u0065\u006C\u0065\u0063\u0074 1,2–注意事项仅适用于后端服务器支持Unicode解码的场景如Java开发的Web应用。技巧11Hex编码绕过适用场景过滤规则拦截字符串拼接、特殊字符可通过Hex编码替换字符串实现注入。原理将注入语句中的字符串转换为Hex编码数据库会自动解码为字符串绕过过滤。实战案例MySQL场景常规注入’ union select 1,database(),3–Hex编码绕过’ union select 1,0x6461746162617365,3–0x6461746162617365 是 database() 的Hex编码注意事项不同数据库的Hex编码格式不同MySQL用 0x 前缀SQL Server用 0x 或 cast(xx as varbinary)。技巧12宽字节注入绕过适用场景后端使用GBK编码且对单引号进行转义如将 ’ 转义为 可通过宽字节实现绕过。原理GBK编码为双字节将转义符 \ASCII码0x5C与前面的字符组合成一个新的GBK字符从而取消单引号的转义实现闭合。实战案例常规转义被拦截’ → 无法闭合宽字节绕过用 %df 替换前面的字符%df’ → 0xdf5c’GBK编码中 0xdf5c 是一个合法字符最终语句1%df’ or 11–注意事项仅适用于后端使用GBK、GB2312等宽字节编码的场景UTF-8编码场景无效。三、SQL注入绕过实战注意事项重中之重绕过技巧的核心是“灵活运用”而非死记硬背实战中需注意以下5点避免踩坑、被拦截先探测后绕过实战中先通过简单语句如 1’、1 and 11探测过滤规则和WAF类型明确拦截内容再针对性选择绕过技巧避免盲目尝试控制尝试频率频繁提交恶意语句会被WAF封禁IP建议每次尝试间隔1-2秒必要时更换IP、代理适配数据库类型不同数据库MySQL、SQL Server、Access支持的语法、编码不同需根据目标数据库调整绕过技巧如Access不支持 union select结合多种技巧单一绕过技巧可能无效可结合多种技巧如大小写编码注释拆分提升绕过成功率坚守合法底线所有绕过操作仅用于合法授权的渗透测试严禁用于未授权系统避免触犯法律。四、总结绕过的核心是“知己知彼”SQL注入绕过的本质是“了解防护规则针对性伪装注入语句”——WAF和过滤机制不是万能的总会存在检测漏洞而我们的核心就是找到这些漏洞实现合法合规的渗透测试。本文整理的12种高频绕过技巧覆盖简单过滤、专业WAF、各类编码场景每个技巧均配实战案例适配Word排版可直接复制粘贴使用也可作为CSDN技术文章发布。对于网安从业者而言掌握这些技巧能大幅提升SQL注入漏洞的挖掘效率突破各类防护瓶颈。最后提醒SQL注入绕过技巧需结合实战不断积累不同场景下的防护规则不同需灵活调整方法同时坚守合法合规底线才能在网安领域走得更远。后续可结合具体数据库如MySQL、SQL Server补充更细分的绕过案例进一步提升内容的实战性。网安学习资源网上虽然也有很多的学习资源但基本上都残缺不全的这是我们和网安大厂360共同研发的的网安视频教程内容涵盖了入门必备的操作系统、计算机网络和编程语言等初级知识而且包含了中级的各种渗透技术并且还有后期的CTF对抗、区块链安全等高阶技术。总共200多节视频100多本网安电子书最新学习路线图和工具安装包都有不用担心学不全。这些东西我都可以免费分享给大家需要的可以点这里自取:网安入门到进阶资源