这里的提示代码为:
$password=$_POST['password'];
$sql = "SELECT * FROM admin WHERE username = 'admin' and password = '".md5($password,true)."'";
$result=mysqli_query($link,$sql);
if(mysqli_num_rows($result)>0){
echo 'flag is :'.$flag;
}
else{
echo '密码错误!';
}
第一次碰到这种类型,无论输入什么测试语句都显示密码不正确,问题出在这里对输入密码执行的md5函数上
这里将密码用md5转换为了原始16字符二进制格式
要注入or 就需要这样加密之后显示出or的字符串
**提供一个字符串:
ffifdyop
md5后,276f722736c95d99e921722cf9ed621c
md5($password,true)函数后为’or’6
构造恒等sql语句成功