PHP任意文件包含繞過截斷新姿勢


前言

此方法是@l3m0n叔叔給我分享的,原文已經發布在90sec

我沒有90sec的賬號,所以自己實踐一下,順道安利給訪問我博客的小伙伴。

適用情況

可以控制協議的情況下,如果%00無法截斷包含,可使用這招。

<?php $a = $_GET['file']; include $a.'.html.php'; 

思路&方法

思路主要是利用了PHP的一個流封裝的特性,可以參考PHP官方文檔中的Example #3

假設存在文件包含的代碼為:

<?php $a = $_GET['file']; include $a.'.html.php'; 

但是我們%00無法截斷, 只能包含 xxxx.html.php

首先我們新建一個hello.html.php,內容為phpinfo();

然后壓縮成zip,結構如下圖:

QQ截圖20160318150028.png

然后訪問如下網址,成功包含壓縮文件內的hello.html.php

http://localhost/test/blog.php?file=zip://test.zip%23hello

如圖:

QQ截圖20160318150113.png

把我們輸入的變量和include后面的變量合起來就是

zip://test.zip#hello.html.php

代表當前目錄下的test.zip壓縮包里面的hello.html.php,於是包含成功。

總結

代碼審計要走的路還很長~我還要繼續學習

很早以前和檸檬草(l3m0n)叔叔搞站遇到過這種情況,當時無果放棄了,前幾天草叔叔告訴我他有思路了。

感謝檸檬草叔叔給我分享這個技巧,讓我學到了新知識 謝謝你 :)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM