(WEB)ctfshow_web9 【MD5加密漏洞绕过sqli】
打开题目是一个登录框,用户名处预先输入了admin。
试了各种sql注入的姿势,都不好使。
对网址进行扫描:
找到了robots.txt,访问它得到以下提示:
访问index.phps:
<?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;
}
}
?>
可以看到password使用了md5加密,在密码框输入ffifdyop,就会出flag。
原理:
ffifdyop被md5加密后是276f722736c95d99e921722cf9ed621c
,会被mysql处理为:username ='admin' and password =‘ ’or 'xxxxx'
,这个语句是恒成立的,所以可以登陆成功。