1. 程式人生 > 實用技巧 >攻防世界-web PHP2

攻防世界-web PHP2

首先我們先將環境下載下來。

進入之後 ,發現一句話

Can you anthenticate to this website?大概就是在說,你能告訴我這個網站嗎? 嘶,先F12一手吧。啥也沒有。然後掃描了一下目錄。有一個index.php,然後在位址列裡輸了一下,發現什麼也沒有。 這就很鬱悶了。然後我在index.php後加了個s,index.phps。然後就出效果了。 這或許是原始碼洩露了。然後檢視一手原始碼。 這是php程式碼。那我來吧程式碼扔下來吧
<?php
if("admin"===$_GET[id]) {
  echo("<p>not allowed!</p>");
  
exit(); } $_GET[id] = urldecode($_GET[id]); if($_GET[id] == "admin") { echo "<p>Access granted!</p>"; echo "<p>Key: xxxxxxx </p>"; } ?> Can you anthenticate to this website?

又要程式碼審計了。

在這裡我們先說一下===與==的區別

===是比較值和資料型別

==它是比較值,不比較資料型別

例如:$a='123' $b=123

$a===$b    //False

$a==$b    //True

裡面有一個urldecode,意思就是用於解碼已編碼的 URL 字串,其原理就是把十六進位制字串轉換為中文字元

要求admin不能等於get傳過來的值,又要求在get傳過來的值經過urldecode後等於admin

而且瀏覽器會對非ASCII字元自動進行一次urldecode,所以我們還得編碼兩次。

所以pyload就為:

http://220.249.52.133:51297/index.php?id=%2561dmin

%2561解碼就是%61 //第一次解碼

%61解碼就為a   //第二次解碼

這樣即可拿到flag

Key: cyberpeace{292e9413104ba4842802367e5e9da7aa}

最後再說一下index.phps吧

phps其實就是php Source,根據意思也可以知道是php原始碼。

所以phps就是php的原始碼檔案。通常用來給使用者檢視php程式碼的。因為使用者無法直接在Web瀏覽器檢視php檔案裡的內容。然後需要用到phps檔案來代替了。