詳解文件上傳漏洞

介紹

在現(xiàn)代互聯(lián)網(wǎng)網(wǎng)站中,上傳文件基本上是一種常見的功能,允許用戶上傳一些圖片,視頻以及其他類型的文件。如果網(wǎng)站出現(xiàn)文件上傳漏洞,那么惡意用戶就可以將可執(zhí)行腳本程序上傳到web服務器中,獲得網(wǎng)站權(quán)限,進一步 gongji web服務器。
當上傳文件時,如果服務端未對客戶端上傳的文件進行嚴格的驗證和過濾,就容易造成文件上傳漏洞,即上傳任意文件(包括腳本文件php,jsp,asp,aspx等格式)
惡意用戶可以利用上傳的webshell控制整個網(wǎng)站甚至控制服務器

成都創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計制作、網(wǎng)站建設(shè)與策劃設(shè)計,六合網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10多年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務涵蓋:六合等地區(qū)。六合做網(wǎng)站價格咨詢:18980820575

繞過

js檢測繞過
js檢測繞過漏洞常見于用戶上傳文件時,如果后綴不允許,則彈窗告知,此時上傳文件的數(shù)據(jù)包并沒有上傳到服務端,只是在客戶端瀏覽器使用JavaScript進行檢測
詳解文件上傳漏洞
此時有兩種方法進行繞過
1.使用瀏覽器插件刪除檢測文件后綴的JavaScript代碼,然后上傳文件
2.先把需要上傳的文件后綴改為允許上傳的后綴繞過JavaScript代碼的檢測,再抓包修改為原來的后綴即可成功
詳解文件上傳漏洞
詳解文件上傳漏洞
可以看到成功繞過js檢測上傳文件成功
文件后綴繞過
文件后綴繞過是服務端限制了某些后綴的的文件不允許上傳,but 有些Apache是允許解析其它文件后綴的,例如在Apache配置文件httpd.conf中有以下代碼則能夠解析php和phtml文件
AddType application/x-httpd-php .php .phtml


在Apache解析順序中是從右到左開始解析文件后綴的,如果最右側(cè)的擴展不識別就繼續(xù)往左判斷,直到遇到可以解析的文件后綴為止,所以如果上傳的文件名類似為luguo.php.xxx,因為后綴xxx不可以解析則向左解析為luguo.php
文件類型繞過
此類繞過需要簡單的兩次判斷
用burp suite抓包
當上傳php文件時
詳解文件上傳漏洞
可以看到數(shù)據(jù)包中的Conetent-Type的值是application/x-php
上傳jpg文件時
詳解文件上傳漏洞
可以看到數(shù)據(jù)包中的Content-Type的值是image/jpeg
可以推斷出服務端是通過Content-Type的值來判斷文件的類型,那么就可以進行繞過了,因為Content-Type的值是通過客戶端傳遞的,是可以進行修改的,我們只需要在上傳php文件時,在Burp suite中將Content-Type修改為image/jpeg,就可以繞過檢測
詳解文件上傳漏洞
在php中還有一種文件上傳漏洞,php調(diào)用函數(shù)getimagesize()獲取圖片長寬高等信息,如果上傳的不是圖片那么getimagesize()就獲取不到信息則不允許上傳,but 我們可以將圖片和webshell合并成一個文件,敲下方命令
cat index.png luguo.php > snowwolf.php
詳解文件上傳漏洞
詳解文件上傳漏洞
訪問上傳的地址,上傳成功
文件截斷繞過
在php中00代表結(jié)束符,所以會把00后面的所有字符刪除
截斷條件php版本小于5.3.4,php的magic_quotes_gpc為off
詳解文件上傳漏洞
上傳文件時服務端將Get參數(shù)name的內(nèi)容為文件名的前一部分,后面則按時間生成的圖片為第二部分
修改參數(shù)截斷為luguo.php%00.ipg,文件保存到服務器時,%00會把.jpg和按時間生成的圖片名全部截斷,文件名就剩下luguo.php,因此成功上傳webshell
競爭條件繞過
一些網(wǎng)站的邏輯是先允許上傳任意文件,然后檢查是否包含webshell腳本,如果包含則刪除。這里存在的漏洞是文件上傳成功后和刪除操作有個時間差,惡意用戶利用時間差就可以完成競爭條件的gongji。
gongji者先上傳一個webshell腳本snowwolf.php,snowwolf.php是生成一個新的webshell腳本,內(nèi)容如下
<?php
fputs(fopen('../shell.php','w'),'<?php @eval($_POST[a]) ?>');
?>


當snowwolf.php上傳成功時,gongji者立即訪問snowwolf.php,則會在服務端立即生成shell.php文件,完成gongji
詳解文件上傳漏洞

詳解文件上傳漏洞
可以看到已經(jīng)生成shell.php文件
ps:單身多年的手速可算派上用場了

修復建議

通過白名單的方式來判斷文件后綴的合法
對用戶上傳的文件重命名

文件上傳漏洞網(wǎng)頁演示源碼鏈接:https://pan.baidu.com/s/1V5b7_FvQjd4yKdaoDbBXCw
提取碼:5i89

網(wǎng)站題目:詳解文件上傳漏洞
URL地址:http://muchs.cn/article44/ispche.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、網(wǎng)站排名做網(wǎng)站、服務器托管建站公司、動態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網(wǎng)站建設(shè)