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

BugKu:備份是個好習慣

解題過程

瞭解到備份二字,說明可能存在備份檔案。
備份檔案的好處是:瀏覽器無法解析帶有備份字尾的檔案,之後會直接提供使用者下載到本地,使用者通過去掉備份字尾開啟可以檢視頁面原始碼進行程式碼審計
通過查詢,查到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