文件上傳漏洞繞過手段


 

文件上傳漏洞的成因

1.服務器的錯誤配置
2.開源編碼器漏洞
3.本地上傳上限制不嚴格被繞過
4.服務器端過濾不嚴格被繞過

常見上傳檢測流程

文件上傳漏洞的危害

(1)網站被控制
(2)服務器淪陷
(3)同服務器的其他網站淪陷

客戶端驗證檢測

 可以看到客戶端代碼中使用了javascript語言進行了簡單的文件后綴名判斷
這個時候我們只需要將本機瀏覽器的javascript模塊禁用就可以使該段代碼不被解析執行。
在火狐瀏覽器中,在


URL這里輸入about:config
把JavaScript改為false

服務器端MIME繞過
MIME檢測的是數據包content-type字段。常見的圖片格式的MIME類型有以下 幾種類型:
PNG圖像:image/png
GIF圖形: image/gif
JPG圖形:image/jpeg

服務器段目錄檢測繞過
在文件上傳時,有的程序允許用戶將文件放到指定的目錄中,如果指定目錄存在就將文件寫 入目錄,不存在則先建立目錄,然后寫入。關鍵代碼如下:

 在HTML頁面有一個隱藏的表單,它默認提交的文件夾名稱為value的值,即”uploads”。代 碼如下:  

 
服務器端擴展名檢測繞過
服務器端后綴名檢測繞過腦圖

黑名單繞過辦法

1.文件名大小寫繞過:pHp,AsP

2.特殊文件名繞過
  在Windows下有一個特性就是如果文件后綴以點‘.’或者空格‘ ’結尾的后綴 名時,系統在保存文件時會自動去除點和空格。但要注意 Unix/Linux 系統沒有 這個特性。
因為有些服務器端的后綴名檢測是取文件名最后一個.后面的字符串,拿這個字符串與黑名單列表對比

3. 0x00截斷繞過
文件名后綴有一個%00字節,可以截斷某些函數對文件名的判斷。在許多語言函 數中,處理字符串的函數中0x00被認為是終止符
例如: 網站上傳函數處理xxx.asp%00.jpg時,首先后綴名是合法的jpg格式,可以 上傳,在保存文件時,遇到%00字符丟棄后面的 .jpg,文件后綴最終保存的后綴 名為xxx.asp

4 .htaccess文件攻擊

 白名單繞過辦法

1.0x00 截斷繞過
用像test.asp%00.jpg的方式進行截斷,屬於白名單文件

2.解析/包含漏洞繞過
這類漏洞直接配合上傳一個代碼注入過的白名單文件即可,再利用解析,包含漏洞。


文件內容檢測繞過
針對文件內容檢測的繞過,一般有兩種方式,
1.制作圖片馬
2.文件幻術頭繞過

圖片馬Windos下的制作

 其中第一個/b表示指定以二進制格式進行復制(合並) 第二個/b表示以什么樣的格式保存我們剛剛合並的那個文件( 用於圖像類/聲音類文件)
還有一種參數/a,它表示以ASCII格式復制合並文件,用於txt等文檔類文件

Linux下圖片馬的制作


當然 >>追加符號也是可以用的

文件幻術頭繞過
圖像相關的信息檢測常用getimagesize( )函數。每種類型的圖片內容最開頭會有一個標志性 的頭部,這個頭部被稱為文件幻術。常用圖片類型有以下幾類:
繞過jpg文件幻術檢測要在文件開頭寫上下圖的值

  Value = FF D8 FF E0 00 10 4A 46 49 46

繞過png文件幻術檢測要在文件開頭寫上下圖的值:


Value = 89 50 4E 47

繞過gif文件幻術檢測要在文件開頭寫上下圖的值:

 Value = 47 49 46 38 39 61

解析漏洞

解析漏洞這里介紹三種:
1.Apache解析漏洞
2.IIS解析漏洞
3.Ngix解析漏洞

1.Apache解析漏洞

WampServer2.0All Version (WampServer2.0i / Apache 2.2.11) [Success] l
WampServer2.1All Version (WampServer2.1e-x32 / Apache 2.2.17) [Success] l
Wamp5 All Version (Wamp5_1.7.4 /Apache 2.2.6) [Success] l
AppServ 2.4All Version (AppServ - 2.4.9 /Apache 2.0.59) [Success] l
AppServ 2.5All Version (AppServ - 2.5.10 /Apache 2.2.8) [Success] l
AppServ 2.6All Version (AppServ - 2.6.0 /Apache 2.2.8) [Success]

這幾個版本的apache解析漏洞,大家可以自己百度下,按照別的大佬們說的做

2. IIS解析漏洞
IIS6.0有兩個解析漏洞,一個是如果目錄名包.asp 、.asa、.cer字符串,那么這個目錄下所有的文 件都會按照 asp 去解析。
例如: chaoasp/1.jpg
因為文件名中有asp字樣,所以該文件夾下的1.jpg文件打開時,會按照asp文件去解析執行

另一個是只要文件名中含有.asp、.asa、.cer會優先按 asp 來解析

IIS7.0/7.5是對php解析時有一個類似於Nginx的解析漏洞, 對任意文件名只要在URL后面追加 上字符串“/任意文件名.php”就會按照 php 的方式去解析 。
例子 :  ”http://www.baidu.com/upload/chao/1.jpg/chao.php"
這種情況下訪問1.jpg,該文件就會按照php格式被解析執行

3.Nginx解析漏洞
一個是對任意文件名,在后面添加/任意文件名.php的解析漏洞,比如原本文件名是 test.jpg, 可以添加為 test.jpg/x.php 進行解析攻擊。
一種是對低版本的 Nginx 可以在任意文件名后面添加%00.php
例如:127.0.0.1/sql-loads/load/chao.jpg%00.php
那么chao.jpg也就被當作php格式文件執行
nginx 0.5.* [Success]
nginx 0.6.* [Success]
nginx 0.7 <= 0.7.65 [Success]
nginx 0.8 <= 0.8.37 [Success]


免責聲明!

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



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