DouPHP(CVE-2024-7917、代码分析xss)漏洞复现

2024-08-29 18:20:40 浏览数 (3)

漏洞介绍

漏洞:CVE-2024-7917

介绍:DouPHP 1.7_Release_20220822版本中存在一个远程代码执行(RCE)漏洞。拥有管理员权限的攻击者可以通过该漏洞在服务器上执行任意命令。漏洞通过上传恶意ico文件、修改文件扩展名来执行PHP代码

该漏洞影响了组件Favicon Handler中的未知功能文件/admin/system.php。通过操作参数site_favicon,攻击者可以执行无限制上传操作。攻击可能远程发起。该漏洞已被公开披露并可能被利用。

影响版本:DouPHP v1.7 Release 20220822

下载地址:https://www.douphp.com/history

环境搭建

使用phpstudy,搭建网站即可。

推荐配置:php7以上 MySQL5.7以上

漏洞复现

1、登录后台

http://域名/admin/login.php

2、点击系统设置---上传shell文件

查看源码,白名单限制

上传后缀为ico的木马文件

代码语言:javascript复制
文件内容:<?php phpinfo();?>

上传成功

3、修改文件后缀为php

burp抓包,我这里在虚拟机搭建的网站,如果要用物理机抓虚拟机的包,需要修改代理IP为物理机的IP地址,无法使用127.0.0.1。

修改new_path =favicon.php

访问www.douphp.com/favicon.php

漏洞介绍

漏洞:xss漏洞

介绍:文件上传导致的XSS

影响版本:DouPHP v1.7 Release 20220822 、DouPHP v1.6 Release 20220216

使用上述已经搭建好的环境

xss漏洞介绍

概念:攻击者利用网站漏洞把恶意的脚本代码(通常包括HTML代码和客户端Javascript脚本)注入到网页之中,当其他用户浏览这些网页时,就会执行其中的恶意代码。

条件

代码语言:javascript复制
- 用户能够控制输入
- 拼接恶意的JS代码

xss可利用的脚本攻击

代码语言:javascript复制
利用标签<>构造HTML/js语句      <script>alert(document.cookie)</script>   双写  大小写 等等绕过姿势
利用javascript伪协议构造       <a href="javascript:alert(1)">点我</a>   
事件驱动                    
<input type="text" onmouseover="alert(1)">  鼠标悬停
<input type="button" onclick="alert(1)">    点击事件
<img src="#" onerror="alert(1)">            报错  等等事件

漏洞探测

翻阅各个模块

上传的页面在前端展示

代码分析

分析admin/show.php,找到功能点

分析代码。判断幻灯名称show_name是否为空,若为空则报出“名称为空的”错误提示

代码语言:javascript复制
if (empty($_POST['show_name'])) $dou->dou_msg($_LANG['show_name'] . $_LANG['is_empty']);

这里可以发现,没有对上传文件的名称做限制,只判断是否为空,会想到是否是文件上传漏洞,使用box函数对上传的文件做了限制,没法绕过。这里可以想到将上传的图片名称写为xss的payload。继续往下分析。

使用Token验证,验证成功,将上传的信息 show_name 、show_link 、show_img、show_text写入数据库中,这里没有二次校验,上传的名称,使用insert注入,没有成功。他这里直接将语句插入到数据库中。

以上分析:猜测在/admin/show.php中存在存储型xss漏洞

漏洞复现

第一处xss

访问:http://www.douphp.com/admin/show.php

代码语言:javascript复制
插入xss_payload :<script>alert(1)</script>

1 人点赞