BugKu:備份是個好習慣
阿新 • • 發佈:2021-09-17
解題過程
瞭解到備份二字,說明可能存在備份檔案。
備份檔案的好處是:瀏覽器無法解析帶有備份字尾的檔案,之後會直接提供使用者下載到本地,使用者通過去掉備份字尾開啟可以檢視頁面原始碼進行程式碼審計
通過查詢,查到index.php.bak這個備份檔案
在瀏覽器輸入後下載到本地返現是PHP程式碼:
<?php /** * Created by PhpStorm. * User: Norse * Date: 2017/8/6 * Time: 20:22 */ include_once "flag.php"; ini_set("display_errors", 0); $str = strstr($_SERVER['REQUEST_URI'], '?'); $str = substr($str,1); $str = str_replace('key','',$str); parse_str($str); echo md5($key1); echo md5($key2); if(md5($key1) == md5($key2) && $key1 !== $key2){ echo $flag."取得flag"; } ?>
這裡就存在過濾了
- 程式碼截取了?後面的傳參值
- 程式碼將key字元過濾成'' ,但是我們可以使用雙寫繞過
- parse_str是傳入變數到str中去,解析str
- 之後是md5的加密
這裡的問題就是,md5加密比較麻煩,但是md5不能解析陣列
,所以我們傳入陣列即可
傳入變數:
flag就出來了
本文來自部落格園,作者:{Zeker62},轉載請註明原文連結:https://www.cnblogs.com/Zeker62/p/15302420.html