自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Upload-Lab第六關(guān):如何巧妙利用大小寫繞過(guò)黑名單驗(yàn)證?

安全
本文通過(guò)利用黑名單驗(yàn)證的缺陷和大小寫繞過(guò)技巧,可以成功繞過(guò)服務(wù)器的文件上傳限制。

在第6關(guān),我們將面對(duì)一個(gè)黑名單驗(yàn)證機(jī)制,服務(wù)器通過(guò)檢測(cè)文件擴(kuò)展名來(lái)拒絕上傳特定類型的文件(例如 .php 文件)。但由于驗(yàn)證邏輯不完善,可以利用大小寫繞過(guò)等技巧進(jìn)行繞過(guò)。如下是第六關(guān)的關(guān)鍵源碼:

$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);//刪除文件名末尾的點(diǎn)
        $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 = '上傳出錯(cuò)!';
            }
        } else {
            $msg = '此文件類型不允許上傳!';
        }
    } else {
        $msg = UPLOAD_PATH . '文件夾不存在,請(qǐng)手工創(chuàng)建!';
    }
}
?>

通過(guò)觀察上述代碼發(fā)現(xiàn),同時(shí)過(guò)濾掉.htaccess和.ini。但是沒(méi)有使用strtolower()函數(shù),可以使用大小寫繞過(guò)黑名單把.php格式改為 .Php上傳上去之后,就會(huì)自動(dòng)解析為.php

解法步驟

(1) 準(zhǔn)備webshell文件:

創(chuàng)建一個(gè)簡(jiǎn)單的 PHP 文件 webshell.Php,內(nèi)容如下:

<?php phpinfo(); ?>

(2) 上傳文件:

在第6關(guān)的文件上傳界面,選擇webshell.Php文件并上傳。上傳成功如下圖所示:

(3) 驗(yàn)證上傳結(jié)果

如果上傳成功,你可以通過(guò)URL訪問(wèn)該文件,驗(yàn)證是否能夠正常執(zhí)行PHP代碼。在本次復(fù)現(xiàn)過(guò)程中,通過(guò)訪問(wèn)這個(gè)文件的URL提示如下報(bào)錯(cuò):

經(jīng)過(guò)檢查也沒(méi)有發(fā)現(xiàn)任何問(wèn)題,本關(guān)卡使用的環(huán)境如下:

  • nginx-1.24.0
  • php-5.3

有知道的小伙伴,麻煩評(píng)論區(qū)告訴我一聲

在windows平臺(tái)下也測(cè)試過(guò)一遍,還是不能正常解析到Php后綴的文件。如下圖:

總結(jié)

第6關(guān)通過(guò)利用黑名單驗(yàn)證的缺陷和大小寫繞過(guò)技巧,可以成功繞過(guò)服務(wù)器的文件上傳限制。這一關(guān)展示了在實(shí)際開(kāi)發(fā)中簡(jiǎn)單黑名單驗(yàn)證的不足之處,強(qiáng)調(diào)了安全驗(yàn)證中細(xì)節(jié)的重要性。

推薦閱讀:

Upload-Lab第一關(guān):輕松繞過(guò)前端驗(yàn)證的技巧!

Upload-Lab第二關(guān):如何巧妙繞過(guò)MIME類型過(guò)濾?

Upload-Lab第三關(guān):如何巧妙應(yīng)對(duì)黑名單文件后綴檢測(cè)?

Upload-Lab第四關(guān):如何巧用.htaccess破解黑名單驗(yàn)證

Upload-Lab第5關(guān):如何巧妙利用.user.ini配置文件繞過(guò)黑名單驗(yàn)證

責(zé)任編輯:趙寧寧 來(lái)源: 攻城獅成長(zhǎng)日記
相關(guān)推薦

2024-08-16 08:44:39

2024-08-12 08:29:08

2024-08-08 14:49:02

2024-08-07 11:01:42

2024-08-06 16:16:34

Upload-Lab前端惡意代碼

2011-01-21 17:53:44

Zimbra

2011-06-02 10:52:11

Android BroadCast 黑名單

2015-06-04 11:11:15

2013-08-27 10:56:24

2010-11-11 13:20:41

2009-06-21 13:44:21

LinuxTr大小寫轉(zhuǎn)換

2010-05-24 13:36:11

2018-06-10 09:04:28

2009-10-29 08:39:14

Windows 7系統(tǒng)激活

2019-07-29 08:41:33

算法黑名單ip

2011-03-18 13:14:01

2011-07-28 11:10:58

2009-05-14 09:11:49

歐盟反壟斷黑名單

2010-11-01 09:17:21

超級(jí)黑名單騰訊QQ360安全中心

2010-01-21 11:44:41

垃圾郵件實(shí)時(shí)黑名單技術(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)