輕輕松松下載信息,文件上傳漏洞值得一看,否則會(huì)后悔!
我相信一些朋友看到標(biāo)題,腦海里真滴是很有可能標(biāo)出一個(gè)念頭,文件上傳漏洞,什么玩意!我平常經(jīng)常上傳文件啊,為什么說(shuō)文件上傳是漏洞呢?漏洞,嚇?biāo)牢伊耍粫?huì)盜取我的數(shù)據(jù)吧。我的網(wǎng)盤自動(dòng)同步的,照片什么的都在上面啊,腫么辦,腫么辦?別急。我來(lái)說(shuō)一下怎么回事。Web應(yīng)用程序通常會(huì)有文件上傳的功能, 例如在 BBS發(fā)布圖片 ,在個(gè)人網(wǎng)站發(fā)布ZIP 壓縮 包, 在辦公平臺(tái)發(fā)布DOC文件等 , 只要 Web應(yīng)用程序允許上傳文件, 就有可能存在文件上傳漏洞。小編,我看不懂啊!ok,繼續(xù)往下看。一、原理一些web應(yīng)用程序中允許上傳圖片,文本或者其他資源到指定的位置,文件上傳漏洞就是利用這些可以上傳的地方將惡意代碼植入到服務(wù)器中,再通過(guò)url去訪問(wèn)以執(zhí)行代碼。大部分文件上傳漏洞的產(chǎn)生是因?yàn)閃eb應(yīng)用程序沒(méi)有對(duì)上傳文件的格式進(jìn)行嚴(yán)格過(guò)濾 , 還有一部分是攻擊者通過(guò) Web服務(wù)器的解析漏洞來(lái)突破Web應(yīng)用程序的防護(hù), 后面我們會(huì)講到一些常見(jiàn)的解析漏洞, 最后還有一些不常見(jiàn)的其他漏洞, 如 IIS PUT 漏洞等。上面這兩段比較官方,我來(lái)簡(jiǎn)單的解釋一下,就是說(shuō),可以利用一些手法,把惡意代碼植入到服務(wù)器,然后后續(xù)進(jìn)行更加深入的操作。至于什么操作,就是仁者見(jiàn)仁智者見(jiàn)智嘍。要是我,就植入小馬,然后連接他,再然后.....二、場(chǎng)景上面已經(jīng)劇透了,但是還是想要再說(shuō)一次。我先問(wèn)一個(gè)問(wèn)題。什么時(shí)候會(huì)用到這種漏洞呢?當(dāng)我看到一個(gè)網(wǎng)站,感覺(jué)很有意思,想要獲取這個(gè)站點(diǎn),恩,想要取得這個(gè)服務(wù)器的權(quán)限,讓他變?yōu)槲业乃接形铮趺崔k呢?針對(duì)網(wǎng)站,一般都是想到上傳小馬,然后菜刀連接,最后lcx端口轉(zhuǎn)發(fā),獲取服務(wù)器。具體解釋下?上傳漏洞與SQL注入或 XSS相比 , 其風(fēng)險(xiǎn)更大 , 如果 Web應(yīng)用程序存在上傳漏洞 , 攻擊者甚至 可以直接上傳一個(gè)webshell到服務(wù)器上。上面這大段話意思就是說(shuō),碼農(nóng)在寫程序的時(shí)候,對(duì)于文件的上傳格式?jīng)]有做限制,所以,很多可執(zhí)行的后綴文件都可以上傳進(jìn)去,問(wèn)題就是這里,上傳以后,黑客通常會(huì)把這些文件保存至網(wǎng)站目錄下面,這樣的話,必然就可以解析了,一解析,就可以唱首涼涼了。因?yàn)檫@種文件通常是可以被黑客的菜刀連接過(guò)去的。說(shuō)太多了,來(lái)個(gè)實(shí)驗(yàn)。三、實(shí)驗(yàn)打開(kāi)我們已經(jīng)部署好的環(huán)境,DVWA,這個(gè)滲透環(huán)境很有意思,可以嘗試一下。上傳php一句話木馬來(lái)嘗試一下,并且查看有沒(méi)有生效。ok,生效了,成功執(zhí)行一句話代碼。接下來(lái)就是解析代碼,然后使用菜刀連接,上傳nc一類進(jìn)行控制,上篇已經(jīng)說(shuō)過(guò)nc的簡(jiǎn)單使用方法了,根因就是服務(wù)器依然處于內(nèi)網(wǎng),對(duì)于外網(wǎng)來(lái)說(shuō)是不可被訪問(wèn)的,所以需要端口轉(zhuǎn)發(fā),把服務(wù)器的3389端口映射為外網(wǎng)端口,這樣就可以控制了。四.總結(jié)理所應(yīng)當(dāng)?shù)挠幸粋€(gè)問(wèn)題產(chǎn)生,我們應(yīng)該這么防御呢?之前也說(shuō)了,主要是代碼那塊限制不嚴(yán)格,而且會(huì)把讀取的文件放到了網(wǎng)站根目錄下面,導(dǎo)致一些問(wèn)題。其實(shí)我想表達(dá),防御主要有幾個(gè)關(guān)鍵點(diǎn),一是文件上傳路徑,二是文件訪問(wèn)權(quán)限,三是文件執(zhí)行權(quán)限。所以使用如下方法,采用白名單以及圖片渲染,這樣即使結(jié)合解析漏洞或者是文件包含漏洞也沒(méi)法getshell,還有一種就是將用戶上傳的文件都放到指定的目錄中,同時(shí)在服務(wù)器配置中設(shè)定該目錄下的所有文件不可執(zhí)行。