[外链图片转存失败,源站可能有防盗在这里插入!链机制,建描述]议将图片上https://传(imb0UVOog.csdnimg.cn/719c44d435484132aa19041a5ced8cd0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAaWbmiJHmmK_oj5zpuKE=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)https://imgblog.csdnimg.cn/719c44d435484132aa19041a5ced8cd0.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAaWbmiJHmmK_oj5zpuKE=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center)]
这里先输入进去发现登录无效,密码用的是万能密码,转到源码看看
可以看出来这里是将用户名带到数据库执行了,并判断密码和用户名是否匹配,这里有两种做法,首先介绍sqlmap的做法。
首先得想法报个错,如果能的话
证明可以,继续构造这里用sqlmap要把cookie和输入的data带进去才行
![在这里插入图片描述](https://img-blog.csdnimg.cn/eac16c3672e84ff78525ef46aa106b3a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAaWbmiJHmmK_oj5zpuKE=,size_20,color_FFFFFF,t_70,g_se,x_16#pic_center
结果得出,总结下sqlmap需要的几个参数
-u 他后面跟url地址
–cookie 他后面跟登陆状态cookie
–data 他后面跟你当时传递值
–dbs 查询数据库
–tables 查询数据表
–columns 查询数据段
-D 他后面跟数据库名
-T 他后面跟数据表名
-C 他后面跟数据段名
–dump 导出数据
第二种做法:
审计源码发现是先$row=SELECT * FROM heroes WHERE login=
G
E
T
[
“
l
o
g
i
n
”
]
,
先
调
用
户
再
结
合
用
户
来
判
断
_GET[“login”],先调用户再结合用户来判断
GET[“login”],先调用户再结合用户来判断row[“login”] && $password == $row[“password”],所以需要两处传进去同时判断成功才会回显。
还有
这是将传进来的值以sha1加密并以16进制小写表示。
recordset从数据库中搜索就有了返回值,即$row[“login”]返回不为空,这里第一个条件就构成了。
后面POST的“&password=1”,1的hash的值被我们添加到联合查询语句里了,即返回的查询有1的hash值所以输入密码与联合查询输入的3字段相等即可
判断有几个字段,然后确定后得确定哪个字段是和密码在一起判断的。
这个是1的sha1
发现只有这俩字段在显示
构造语句拿下