打開題目發現有注入框,簡單的注入測試後發現沒有效果,掃描一下,發現存在robots.txt
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5EjN2AjN0YTM1ETMwEjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
進入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;
}
}
?>
我們需要輸入一個密碼,通過md5加密後,繞過sql語句。
此時有一個字元串為
ffifdyop
,經過md5為
276f722736c95d99e921722cf9ed621c
,再轉換為字元串為
' ' 'or' 6<trach>
解析: 存在 or 即代碼的兩邊有一邊為真既可以繞過,其實為垃圾代碼沒有任何用的。 or
後面有6,非零值即為真。既可以成功繞過。
得到flag