Object類中的方法
檔案上傳漏洞是使用者上傳了一個可執行的指令碼檔案,並通過此指令碼檔案獲得了執行伺服器端命令的能力。這種攻擊方式是最為直接和有效的,“檔案上傳”本身沒有問題,有問題的是檔案上傳後,伺服器怎麼處理、解釋檔案。
繞過方法:
繞過服務端檢測:
服務端的程式碼常檢測request包中的三個點:MIME型別、檔案字尾、檔案內容。
- 繞過MIME型別檢測
原理:檢測圖片型別檔案上傳過程中http包的Content-type欄位的值,來判斷上傳檔案是否合法。
繞過方法:用burpsuite擷取並修改資料包中檔案的content-type型別,或者用大小寫進行繞過;
1
|
text/plain(純文字)
|
不完善的黑名單副檔名:
副檔名在黑名單中為不合法,一般有個專門的blacklist檔案,裡面會包含常見的危險指令碼檔案。
繞過方法:
- 字尾大小寫繞過:在對字尾的判斷中,如果只是對字串進行單獨的比較來判斷是不是限制檔案,可以採用字尾名大小寫繞過形式。
- 空格繞過:如果黑名單沒有對字尾名進行去空處理,可以通過在後綴名後加空格進行繞過。
- 雙寫繞過:如果黑名單是將問題字尾名替換為空,可以利用雙寫繞過。
|
php2, php3, php4, php5, phps, pht, phtm, phtml
|
繞過中介軟體檢測:
iis解析漏洞
1 目錄解析
以*.asp命名的資料夾裡的檔案都將會被當成ASP檔案執行。
2 檔案解析
*.asp;.jpg 像這種畸形檔名在“;”後面的直接被忽略,也就是說當成 *.asp檔案執行。
IIS6.0 預設的可執行檔案除了asp還包含這三種 *.asa *.cer *.cdx
3 預設解析
.asp .aspx .ashx .asa .cer這是系統默預設的字尾名
Apache解析漏洞
漏洞原理:Apache 解析檔案的規則是從右到左開始判斷解析,如果字尾名為不可識別檔案解析,就再往左判斷。比如 test.php.owf.rar “.owf”和”.rar” 這兩種字尾是apache不可識別解析,apache就會把wooyun.php.owf.rar解析成php。
nginx解析漏洞
開啟cgi:SCRIPT_NAME FASTCGI:
www.xx.com/a.jpg/.php(任何不存在檔案)-----可以解析為.php檔案
a.jpg:<?php phpinfo();?>
a.php%00.jpg----解析為a.php
配置問題導致漏洞:
1.如果在 Apache 的 conf 裡有這樣一行配置 AddHandler php5-script .php 這時只要檔名裡包含.php 即使檔名是 test2.php.jpg 也會以 php 來執行。
2.如果在 Apache 的 conf 裡有這樣一行配置 AddType application/x-httpd-php .jpg 即使副檔名是 jpg,一樣能以 php 方式執行。
3.修復漏洞方法
1.apache配置檔案,禁止.php.這樣的檔案執行,配置檔案裡面加入
1
|
<Files ~ “.(php.|php3.)”>
|