一。雙文件上傳利用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