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
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。