雙文件上傳詳解


一。雙文件上傳利用

雙文件上傳意思是通過上傳兩個或多個文件去突破

利用方式:

在存在雙文件上傳漏洞的頁面中,查看上傳的頁面。

方法:(1)f12找到上傳的post表單,action屬性是指定上傳檢測頁面,一般是寫的絕對路徑,比如:xxx.asp/xxx.php。

           (2)補全url: https://www.xxx.com/xxx.php(asp)

           (3)構造本地post提交表單

1 <form action="https://www.xxx.com/xxx.asp(php)" method="post"
2 name="form1" enctype="multipart/form‐data">
3 <input name="FileName1" type="FILE" class="tx1" size="40">
4 <input name="FileName2" type="FILE" class="tx1" size="40">
5 <input type="submit" name="Submit" value="上傳">
6 </form>

利用時只需改action的值為指定上傳頁面即可。

            (4)第一個上傳文件是符合條件的(.jpg;.png;.gif等);第二個上傳文件是一句話木馬或者webshell

這樣就可以突破上傳限制,成功上傳木馬到服務器。

原理:

上傳點支持多文件上傳,但是卻只對第一個文件做了過濾

所以上傳只對第一個文件后綴名進行檢測,對第二個文件不進行檢測直接上傳到服務器。

看一段存在雙文件上傳漏洞代碼

1 for i=0 to ubound(arrUpFileType)
2 if fileEXT=trim(arrUpFileType(i)) then
3 EnableUpload=true
4 exit for
5 end if
6 next

一開始EnableUpload=false,但是進入上面的for循環之后,它判斷了文件類型是否合法。如果合法,EnableUpload值為True,所以當第一個文件是合法文件時,就不在檢測往后的文件。

 

雙文件上傳漏洞是一個比較老的漏洞,其修復也很簡單,就是只支持一個文件上傳即可。

今天偶爾看到這個漏洞,雖然知道利用方法,但是利用原理還是不懂,所以拿出來仔細看看這個漏洞。

利用方法其實很多:也可以在上傳時抓包,把反應包復制一份,再把filename改成任意名字,如:filename1 這樣也可以突破上傳限制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM