簡介:進行遠端包含時,大多數包含txt、jpg等檔案,再進行菜刀連線,但是如果遠端包含的是php檔案,則菜刀無法成功連線。
開門見山,給我帶來啟發的兩句話
注意:如果是包含遠端伺服器上的php檔案,那麼得到的是被遠端伺服器解析過的php,所以在寫一句話木馬的時候就不要做成.php的檔案,一般包含.txt的檔案
例如:我們用windows server 2003 伺服器包含乙個linux上的phpinfo.php檔案,那麼得到的就是linux的php配置檔案,而不是windows上的php配置檔案。
(參考:
下面是一些推斷驗證:
驗證:現有兩個靶機環境,都上傳乙個php檔案檢視phpinfo()資訊,進行對比
靶機1:
靶機2:
可以發現2個靶機的php版本資訊是不一樣的
現在通過靶機1遠端包含靶機2的php檔案
可以發現該php版本資訊,為包含的遠端檔案上的伺服器的php版本資訊,即靶機2的php版本資訊
證實了包含遠端php檔案時,會在伺服器上進行php解析後,再傳給包含該遠端php檔案的伺服器上
由於post提交值不太方便,這裡我們改用get方式
首先上傳乙個test.php檔案,
檔案內容:
<?php
echo
"123"
;$name
=$_get
['abc'];
echo
"----------------";
echo
$name
;echo
"----------------";
?>
並在example1.php中新增了乙個echo nam
e,驗證
name,驗證
name,驗
證name的值
如果直接對這個上傳檔案進行正常訪問,結果也顯示正常,如下圖:
將該檔案進行包含
url:
**注意:**這裡的abc前是用&符連線,表示該值是傳遞給example1.php的
說明example1.php中的壓根沒有接收到abc這個引數
如果我們這樣測試
url:
**注意:**abc前是?這樣就表示這個abc引數是傳給test.php的
可以發現test.php中的echo $name;進行了正常輸出,說明test.php中是接收到了abc引數的值,而example1.php中的echo nam
e;依然
沒有正常
輸出,報
了不存在
name; 依然沒有正常輸出,報了不存在
name;依
然沒有正
常輸出,
報了不存
在name
通過以上兩點,可以說明,包含test.php時,先進行test.php解析,
通過$name = get
[′ab
c′]獲
得了ab
c的值並
且這個_get['abc']獲得了abc的值 並且這個
get[′
abc′
]獲得了
abc的
值並且這
個name就相當於乙個存在於test.php的內部變數,當被example1.php包含時,example1.php壓根看不到$name的值,推斷出遠端包含時解析了test.php後,將解析的結果傳給了example1.php中,而不是將test.php的**傳給example1.php中
如果我們包含的是test.txt(與test.php中內容相同)又是怎麼樣的情況
url:
注意這裡是&abc
說明這是把test.txt中的**傳給了example1.php中,然後再對example1.php進行解析
url:
注意這裡是?abc
這裡的報錯與我們所想的一致,因為test.txt還未包含時,不會被解析,就無法獲取引數abc的值
總結:當伺服器a遠端包含伺服器b的php檔案時,遠端伺服器b會先對php進行解析,解析後的結果再傳給a,而當伺服器a遠端包含伺服器b非指令碼檔案(比如txt,jpg)時,b會將檔案內容(因為是非指令碼,b自然不會進行解析)傳給a,a包含b傳來的檔案內容後,再進行解析,而解析過程中又發現b傳來的檔案內容是php檔案格式,於是會進行php。
PHP檔案包含漏洞
php的檔案包含可以直接執行包含檔案的 包含的檔案格式是不受限制的。檔案包含分為本地文字包含 local file include 和遠端檔案包含 remote file include 檔案包含函式有 include include once require 和require once 它們之間的...
PHPList遠端檔案包含漏洞
影響版本 phplist 2.6.2 漏洞描述 phplist是一款由php編寫的時事通訊應用程式。phplist由於不充分過濾使用者提交的請求,遠端攻擊者可以利用這個漏洞包含遠端伺服器上的惡意php檔案,以web許可權執行。michiel dethmers secfoc kipu.co.uk se...
PHP檔案包含漏洞總結
php檔案包含漏洞的產生原因是在通過php的函式引入檔案時,由於傳入的檔名沒有經過合理的校驗,從而操作了預想之外的檔案,就可能導致意外的檔案洩露甚至惡意的 注入。最常見的就屬於本地檔案包含 local file inclusion 漏洞了。我們來看下面一段index.php 1 2 3 4 5 if...