启动靶机
看样子或许又是存在注入。试了半天没啥反应,那我就先用bp抓包吧
然后在响应头的地方看到了提示select * from 'admin' where password=md5($pass,true)
这下得考虑下pasword是多少了。查看一下md5()函数的true参数
然后百度了一下,md5()参数漏洞,
发现可以找到ffifdyop
字符串会造成漏洞。在本地运行了一下,
<?php $a='ffifdyop'; echo md5($a,true); ?>
输出的是or’6xxxxxx
在数据库语句里就构成了select * from ‘admin’ where password= ''or’6xxxxxx ’ 相当于 password= ‘’ or 1 变成永真
在bp输入ffifdyop回显是这样的,直接在输入框里直接输入就会直接跳到/levels91.php页面
跳转后查看源码
发现了新大陆。访问这个页面
然后我们查看一下源代码。
<!-- $a = $GET['a']; $b = $_GET['b']; if($a != $b && md5($a) == md5($b)){ // wow, glzjin wants a girl friend. -->
可以使用数组a[]=1&b[]=2绕过
使用数组param1[]=1¶m2[]=2绕过
这样就可以拿到flag