筆記|文件上傳漏洞(文件繞過)

這是一篇網絡安全小白寫的筆記。

目錄

0 文件上傳漏洞概述

1 利用文件名及文件類型名類漏洞
1.1 javascript檢測擴展名繞過漏洞
1.2 0x00特殊字符截斷漏洞
1.3 IIS和Windows系統下的“;”截斷字符露洞
1.4FCKEditor為典型的黑名單式文件檢測漏洞

2 利用文件內容類漏洞
2.1 文件頭檢測漏洞

3 利用系統漏洞
3.1 Apache從后往前解析特性
3.2 IIS 6文件夾拓展名漏洞

0 文件上傳漏洞

上傳漏洞是利用文件上傳漏洞把腳本文件上傳到服務器。

1 利用文件名類漏洞

1.1 javascript檢測擴展名繞過漏洞

檢測原理 通過js代碼檢測文件文件類型

function check(){
        var filename=document.getElementById("file");
        var str=filename.value.split(".");
        var ext=str[str.length-1];
        if(ext=='jpg'||ext=='png'||ext=='jpeg'||ext=='gif'){
            return true;
        }else{
            alert("這不是圖片!")
            return false;
        }
        return false;

在表單中使用onsumbit=check();調用js函數來檢查上傳文件的擴展名。
漏洞原理 利用瀏覽器修改腳本,破壞檢測即可。

1.2 0x00特殊字符截斷漏洞

漏洞原理 在C語言、PHP等語言中,0x00被認為是終止符,可構造文件名為xxx.php[\0].jpg,[\0]為16進制的0x00字符,由于[\0]0x00)是截斷字符,文件名會變成xxx.php。

1.3 IIS和Windows系統下的“;”截斷字符漏洞

漏洞原理 在IIS和Windows環境下,截斷字符“;”與0x00類似。可構造aaa.asp;bbb.jpg。IIS 6將執行aaa.asp

1.4 FCKEditor為典型的黑名單式文件檢測漏洞

漏洞原理 黑名單式的限制文件上傳,代碼如下:

$Config ['AllowedExtensions'] ['File'] = array();//允許上傳的類型
$Config ['DeniedExtensions'] ['File'] = array('php','php3','php5','phtml','asp','aspx','ascx','jsp','cfm','cfc','pl','bat','exe','dll','reg','cgi');//禁止上傳的類型

漏洞防止 如果不必要,可以刪除上傳代碼。

2 利用文件內容類漏洞

2.1 文件頭檢測漏洞

漏洞原理 判斷文件頭內容是否符合要求,

幾個常見的文件頭對應關系:
(1) .JPEG、.JPE、.JPG:"JPGGraphic File";
(2) .gif:"GIF 89A";
(3) .zip:"Zip Compressed";
(4) .doc、.xls.xlt.ppt、.apr:"MS Compound Document v1 or Lotus Approach APRfile";

3 利用系統漏洞

3.1 Apache從后往前解析特性

漏洞原理 Apache 1.x、2.x中對文件解析有如下特性:
(1)從后往前解析,直至一個可識別文件類型為止;
(2)可識別類型定義在mime.types文件中。
可構造xxx.php.rar來繞過。

3.2 IIS 6文件夾拓展名漏洞

漏洞原理 IIS 6曾經出過的漏洞,處理文件父文件夾如為*.asp,則本文件按ASP格式解析。例如:****/aaa.asp/bbb.jpg,bbb.jpg將按asp文件解析。

參考資料
[01]上傳漏洞總結
[02]米斯特白帽培訓講義 漏洞篇 文件上傳
[03]Web應用安全(麥子學院)|文件上傳漏洞
[04]Web應用安全(麥子學院)|文件上傳另一種方式
[05]Web應用安全(麥子學院)|文件上傳漏洞之繞過方式
[06]Web應用安全(麥子學院)|文件上傳漏洞防御
[07]閑話文件上傳漏洞
[08]文件上傳漏洞(繞過姿勢)
[09]吳翰清.白帽子講Web安全 [M].北京:高等教育出版社,2012.3 . 180-191

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 文件上傳漏洞是指用戶上傳了一個可執行的腳本文件,并通過此腳本文件獲得了執行服務器端命令的能力。這種攻擊方式是最為直...
    付出從未后悔閱讀 1,186評論 0 4
  • 文件上傳漏洞: 1.本地驗證 本地驗證:客戶端本地通過前臺JS腳本進行檢測。 原理: 當用戶在客戶端選擇文件點擊上...
    xaviershun閱讀 1,393評論 0 1
  • 一套實用的滲透測試崗位面試題,你會嗎? 1.拿到一個待檢測的站,你覺得應該先做什么? 收集信息 whois、網站源...
    g0閱讀 4,895評論 0 9
  • 蝶水月秋千閱讀 190評論 0 0
  • 我是一碗蛋炒飯,很家常,卻很溫暖。 很餓的時候,隨手打個雞蛋,切些火腿,加點香蔥,如果有玉米和青豆那再好不過。頂多...
    Ana2閱讀 440評論 0 0