进入题目后是一个登录框,
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130028540-1767269780.png)
我先试了一下
用户名:admin 密码:admin
然后进入了search.php页面跟我说我密码错误(好家伙,我看了别人的wp,他们都是先进行注入,可能我比较菜还没有这种习惯)
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130114243-193725652.png)
查看源码给出提示
MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
发现这是base32加密,解码后发现又是一段base64编码
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130244726-1735720032.png)
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130251856-82018138.png)
所以知道了sql语句为select * from user where username = '$name',然后用联合查询测试一下字段数
两个字段的时候报错
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130444235-2026321878.png)
然后测试一下三个字段没有报错
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130451871-1456967458.png)
然后测试一下用户这个字段在哪一个字段当中
1' union select 'admin',2,3#
用户错误,不是我要找的
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130524308-7189672.png)
1' union select 1,'admin',3#
密码错误,所以第二个字段是user字段
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130536258-1537885344.png)
然后查看wp知道是MD5加密,接下里就是要绕过密码的md5验证,需要把我们输入的值和数据库里面存放的用户密码的md5值进行比较,可以用联合查询语句用来生成虚拟的表数据。
我们可以利用联合查询来创建一行admin账户的续集数据,混淆admin用户的密码,将我们自定义的admin用户的密码(123)加进去,这样我们就可以登录admin用户了
在用户名登录框输入
1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#
其中202cb962ac59075b964b07152d234b70为123的MD5值,然后在密码登录框中输入123即可登录。
![](https://img2020.cnblogs.com/blog/2180269/202111/2180269-20211108130624407-839985835.png)