baby sqli 联合查询加入数据 手工注入

0x00 BabySQli

原题目描述:刚学完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 #报错了

发现应该是有三个字段的。猜测这三个字段可能是编号或ip之类的,然后user和password。user框输入' union select 1,'admin',3#不报错,证明第二个字段确实是user,那么猜测第三个字段是password,看来还是用md5加密过的。

0x02 一个知识点

当查询的数据不存在的时候,联合查询就会构造一个虚拟的数据。
比如:(自己没这个环境也没搭建,借其他博客的图片举个例子,大佬莫怪)
原先的表有这三个字段,有这样的数据内容

 
原先的表

我们如果在查询的时候输入这样的查询语句:
 
查询语句

发现我们在联合查询并不存在的数据时,联合查询就会构造一个虚拟的数据。这时候直接在pass框里面输入e10adc3949ba59abbe56e057f20f883e的md5解密结果就可以了。

 

0x03 payload+总结

payload:

username栏:'union select 1,admin','e10adc3949ba59abbe56e057f20f883e'#
password栏:123456

总结:这个题考察的就是简单的手工注入+联合查询查询不存在数据会构造虚拟的数据



作者:Leena_c9a7
链接:https://www.jianshu.com/p/034cfa61a305
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2020-09-24 22:04  huhuf6  阅读(286)  评论(0编辑  收藏  举报