雙文件上傳詳解

一。雙文件上傳利用php

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

利用方式:web

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

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

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

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

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的值爲指定上傳頁面便可。spa

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

這樣就能夠突破上傳限制,成功上傳木馬到服務器。orm

原理:

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

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

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

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 這樣也能夠突破上傳限制。

原文出處:https://www.cnblogs.com/Da4er/p/11559922.html

相關文章
相關標籤/搜索