1. 程式人生 > 其它 >備份是個好習慣 bugku

備份是個好習慣 bugku

 

 

 題目描述:

 

解題思路:

1.檢視網頁原始碼只顯示一行字元,有點像16進位制,但經過解碼並不是,也不是base64等編碼

 

2.根據題目,應該和備份相關,預設頁面一般都是 index.php或者index.html

 

再去嘗試index.php.bak

 

 

下載下載檢視內容:

 

 

對這個內容進行簡單剖析:

(1)strstr — 查詢字串的首次出現,$st是獲得URI?傳參的部分;
(2)然後將 key字元進行替換為空;這裡可以在傳參是進行雙寫繞過,如: kekeyy1 ===> key1
(3)然後輸出key1的MD5值,即頁面顯示的內容,將其進行md5解密為空,因為key1為空值,見下圖;
(4)後面的if判斷是尋找 key1和key2的md5值相同,但加密前的內容不同,就會顯示flag.
瞭解了原理了就可以進行構造....

 

 

 3.md5繞過技巧

(1)md5()函式無法處理陣列,如果傳入的為陣列,會返回NULL,經過加密後得到的都是NULL

 

 

 

http://114.67.175.224:15315/?kekeyy1[]=a&kekeyy2[]=b

 

 

(2)js的==比較漏洞,對所有0exxxx的科學計數,會在比較時轉化為0,都是相等的,所以只要對某些值加密後是0e開頭即可

 

 

QNKCDZO

240610708

s878926199a

s155964671a

s214587387a

s214587387a

  

 

 

http://114.67.175.224:15315/?kekeyy1=QNKCDZO&kekeyy2=240610708

  

 

 

 

 

注:關於 == 比較規則,想要詳細瞭解的可以自行百度一下哈~~~~,這道題主要學習一下md5繞過的方法~~