据说哈希后的密码是不能产生注入的
代码审计题,进入直接看F12
在这里我们可以找到重点
if($row!=null){
echo"Flag: ".$flag;
}
$strsql="select * from `user` where userid=".intval($_GET['userid'])." and password='".md5($_GET['pwd'], true) ."'";
这一段代码,对传入的userid使用了intval()函数转化为数字,同时将password使用md5()函数进行转化。
那么我们只能从MD5加密上入手了,通过这一段代码要在经过MD5加密后,产生的东东可以进行注入
在这一段代码中,对输入进行md5编码,这样好像就没办法注入了。但其实不然,因为当md5函数的第二个参数为True时,编码将以16进制返回,再转换为字符串。
而字符串’ffifdyop’的md5加密结果为'or'<trash>
其中 trash为垃圾值,or一个非0值为真,也就绕过了检测。
所以只要我们在password处输入ffifdyop
md516进制编码加密后,产生了 含有or 的字符串,那么就可以产生注入了
http://lab1.xseclab.com/code1_9f44bab1964d2f959cf509763980e156/?userid=1&pwd=ffifdyop
Flag: FsdLAG67a6dajsdklsdf
网友评论