ctfshow-web9


web 9

首先把環境下載下來,然后,界面是這樣子

 

 

 給了你用戶名了,沒有密碼,慣性思維使我認為是sql注入,那我就試着做了一下,可是都沒有回顯,不知道是啥問題。或許是過濾了?還是怎么樣。反正就是回顯不了。

那我就掃描一下目錄吧,拿出我們的dirsearch掃它一手: python dirsearch.py -u 網址 -e php ,利用這個命令就可以掃描了。

 

 

 發現了,一個robots.txt文件,訪問一手。

 

 

 發現index.phps,確定源碼泄露。訪問index.phps下載源碼

 1 <?php
 2         $flag="";
 3         $password=$_POST['password'];
 4         if(strlen($password)>10){
 5             die("password error");
 6         }
 7         $sql="select * from user where username ='admin' and password ='".md5($password,true)."'";
 8         $result=mysqli_query($con,$sql);
 9             if(mysqli_num_rows($result)>0){
10                     while($row=mysqli_fetch_assoc($result)){
11                          echo "登陸成功<br>";
12                          echo $flag;
13                      }
14             }
15     ?>

這便是源碼。大家可以發現,第七行的這段代碼: $sql="select * from user where username ='admin' and password ='".md5($password,true)."'"; sql查詢,我們看查詢條件,用戶名是admin,密碼是利用md5加密后的結果,

語法:md5(string,raw)

參數 描述
string 必需。規定要計算的字符串。
raw

可選。規定:

  TRUE - 原始 16 字符二進制格式

  FALSE - 默認。32 字符十六進制數

將密碼轉換成16進制的hex值以后,再將其轉換成字符串后包含'or’xxxx

這樣,條件就成了username ='admin' and password =‘ ’or 'xxxxx'。對語句進行了閉合,其實就是拼接成了萬能密碼。

看了大佬的博客,得來了字符:ffifdyop

輸入此字符串即可獲得flag

 

 參考文章:

md5類型繞過


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM