域名預(yù)訂/競(jìng)價(jià),好“米”不錯(cuò)過(guò)
在日常對(duì)客戶(hù)網(wǎng)站進(jìn)行滲透測(cè)試服務(wù)的時(shí)候,我們SINE安全經(jīng)常遇到客戶(hù)網(wǎng)站,app存在文件上傳功能,程序員在設(shè)計(jì)開(kāi)發(fā)代碼的過(guò)程中都會(huì)對(duì)上傳的文件類(lèi)型,格式,后綴名做安全效驗(yàn)與過(guò)濾判斷,SINE安全工程師在對(duì)文件上傳漏洞進(jìn)行測(cè)試的時(shí)候,往往發(fā)現(xiàn)的網(wǎng)站漏洞都是由于服務(wù)器的環(huán)境漏洞導(dǎo)致的,像IIS,apache,nginx環(huán)境,都存在著可以導(dǎo)致任意文件上傳的漏洞。
關(guān)于導(dǎo)致文件上傳漏洞的產(chǎn)生以及測(cè)試,我們來(lái)詳細(xì)的分析一下:
IIS解析漏洞導(dǎo)致的任意文件上傳
首先比較常見(jiàn)的是客戶(hù)網(wǎng)站使用的IIS環(huán)境來(lái)搭建的,一般是IIS+PHP+Mysql數(shù)據(jù)庫(kù)組合,或者IIS+aspx+sql2005數(shù)據(jù)庫(kù),IIS存在解析漏洞,當(dāng)創(chuàng)建文件名為.php的時(shí)候,在這個(gè)目錄下的所有文件,或者代碼,都會(huì)以PHP腳本的權(quán)限去運(yùn)行,比如其中一個(gè)客戶(hù)網(wǎng)站,可以將上傳的目錄改為1.php,那么我們上傳的jpg文件到這個(gè)目錄下,訪問(wèn)的網(wǎng)址是域名/1.php/1.jpg從瀏覽器里訪問(wèn)這個(gè)地址,就會(huì)是php腳本的權(quán)限運(yùn)行。當(dāng)上傳網(wǎng)站木馬webshell過(guò)去,就會(huì)直接拿到網(wǎng)站的管理權(quán)限。存在IIS解析漏洞的版本是5.0-6.0版本。
nginx解析漏洞導(dǎo)致的任意文件上傳
nginx是靜態(tài)訪問(wèn),以及大并發(fā),能夠承載多人訪問(wèn),目前很多網(wǎng)站都在使用的一種服務(wù)器環(huán)境,簡(jiǎn)單來(lái)講就是HTTP訪問(wèn)的代理,高速穩(wěn)定,深受很多網(wǎng)站運(yùn)營(yíng)者的喜歡,在nginx最低版本中存在解析漏洞,可以導(dǎo)致運(yùn)行PHP腳本文件,漏洞產(chǎn)生的原因是由于php.ini配置文件與nginx配合解析的時(shí)候,將默認(rèn)的后綴名認(rèn)為是最重的文件名,導(dǎo)致可以修改后綴名來(lái)執(zhí)行PHP文件。我們SINE安全在滲透測(cè)試中發(fā)現(xiàn)客戶(hù)網(wǎng)站開(kāi)啟nginx以及fast-cgi模式后,就會(huì)很容易的上傳網(wǎng)站木馬到網(wǎng)站目錄中,我們將jpg圖片文件插入一句話(huà)木馬代碼,并上傳到網(wǎng)站的圖片目錄中。
我們?cè)谠L問(wèn)這個(gè)圖片的時(shí)候,直接在后面輸入/1.php,就會(huì)導(dǎo)致圖片文件以php腳本權(quán)限來(lái)運(yùn)行了。如下圖所示:
apache解析漏洞導(dǎo)致的任意文件上傳
apache也是目前使用較多的一個(gè)服務(wù)器環(huán)境,尤其php網(wǎng)站使用的較多,因?yàn)榉€(wěn)定,快速,易于PHP訪問(wèn),可以將第三方的一些開(kāi)發(fā)語(yǔ)言編譯到網(wǎng)站中,apache也是存在漏洞的,尤其在apache1.0-2.0版本中,后綴名判斷這里沒(méi)有做詳細(xì)的規(guī)定,導(dǎo)致可以繞過(guò)apache安全機(jī)制,上傳惡意的文件名。默認(rèn)是允許多個(gè)后綴名進(jìn)行解析的,如果命名的后綴名不被apache認(rèn)可解析,就會(huì)向前尋找后綴名,直到后綴名是apache認(rèn)可的,就會(huì)直接解析成功。 該文件上傳漏洞使用的條件是需要開(kāi)啟module模式,不是這個(gè)模式的上傳不了。我們SINE安全在對(duì)客戶(hù)網(wǎng)站進(jìn)行滲透測(cè)試的時(shí)候,首先會(huì)改后綴名為apache不認(rèn)可的,然后POST上傳過(guò)去,直接運(yùn)行php腳本。如下圖所示:
總的來(lái)說(shuō)導(dǎo)致任意文件上傳漏洞的發(fā)生也存在于服務(wù)器環(huán)境中,那么在滲透測(cè)試過(guò)程中該如何的修復(fù)漏洞呢?將IIS版本升級(jí)到7.0以上,Nginx版本也升級(jí)到最新版本,包括apache版本升級(jí)到2.4以上,在上傳功能代碼里對(duì)其進(jìn)行文件格式的判斷,限制目錄的創(chuàng)建,可杜絕以上的問(wèn)題的發(fā)生。
申請(qǐng)創(chuàng)業(yè)報(bào)道,分享創(chuàng)業(yè)好點(diǎn)子。點(diǎn)擊此處,共同探討創(chuàng)業(yè)新機(jī)遇!