Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2020-28874 — CVE-2020-28874 | Kitploit
工具/GitHubGitHub/varandinawer/cve-2020-28874
权限提升密码攻击漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

查看仓库
5年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

该仓库包含在 ProjectSend r1270 版本中发现的漏洞(CVE-2020-28874)的描述。

感谢我的同事 Entelgy Innotec Security 推动我进步!

CVE-2020-28874:权限提升

描述

该漏洞存在于重置密码组件中,攻击者可以在没有有效令牌的情况下,通过用户名(如 admin)更改任何已知用户的密码。

这是因为后端没有用从提供的用户名加载的用户数据来清理 $user_data。

root@kitploit:~
 if (!empty($_GET['token']) && !empty($_GET['user'])) {
        $got_token	= $_GET['token'];
        $got_user	= $_GET['user'];

        /**
         * 获取用户 ID
         */
        $user_data = get_user_by_username($got_user);
        ....
        }

并且使用该变量的状态继续重置密码的过程。

root@kitploit:~
    if ($_POST) {
        /**
         * 清理提交的表单值。
         */
        $form_type = encode_html($_POST['form_type']);
        
        switch ($form_type) {
        ----
            case 'new_password':
                if (!empty($user_data['id'])) {
                    $reset_password_new = $_POST['password'];
                    ...
                }
        ...
        }

攻击

为此,攻击者需要构造一个 POST 请求,在查询字符串中包含一个无效的参数 "token" 和 "user" 参数(目标用户名),同时还需要在请求体中添加 "form_type" 为 "new_password"、"password" 为所需的新密码,以及一个有效的 csrf_token(从登录表单获取,重置密码表单不提供该令牌)。

在该仓库中,你可以找到一个用于利用该漏洞的 Python 脚本和一个用于测试的 Docker 容器。

用法

root@kitploit:~
git clone https://github.com/varandinawer/CVE-2020-28874_CVE-2020-28875.git
cd ./CVE-2020-28874_CVE-2020-28875/docker-r1270
docker-compose up 
#完成 ProjectSend 安装过程后,在浏览器中访问 http://localhost,并按照指示设置管理员账户
cd .. 
python CVE-2020-28874.py --url http://localhost --user admin --pwd newAdminP4ssword*

修复

升级至版本 r1295 或更高版本。

下载工具