DedeCMS友情链接flink_add Getshell漏洞管理员CSRF漏洞

织梦教程 强烈建议 2024-02-06 14:18 350 0

  DedeCMS友情链接漏洞,DedeCMS漏洞,

  1、漏洞利用

  由于tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量写入任意的代码。

  又由于应用没有对管理员的来源页进行任何检查,只是检查了管理员是否登陆,从而造成了CSRF漏洞。

  因此可以诱导管理员以管理员的权限写入代码即可。

  测试版本:DedeCMS-V5.7-UTF8-SP1-Full 20150618

  exp:

  首先,将这个exp部署在公网服务器上

  

  在目标网站的申请友情链接处申请一个友情链接

  

  网址填写为先前的 名称随便填,也可填写诱导性关键字引发管理员好奇心。

  提交成功之后等待管理员审核,当管理员审核的时候,一般情况下会点进你的网站看一下(漏洞利用关键)。

  管理员审核:

  后台 -> 模块 -> 辅助插件 -> 友情链接

  当管理员点这个友情链接的时候,就生成了一句话shell,shell地址在/include/taglib/shell.lib.php

  事实上,点击新添加的友情链接时,管理员触发了一个HTTP请求:

  

  页面跳转:

  成功修改/创建文件!

  生成shell地址:

  

  2、漏洞分析

  在tpl.php文件中

  这里是漏洞利用写入文件的地方,但是我们知道,基本所有的不安全情况,是在数据输入输出时发生的,这里的参数是怎么传递过来的呢?还有$filename和$content是怎么传递参数的呢?继续跟踪config.php又 include了 common.inc.php ,而一般情况下,类似common.php这种文件名的,里面存放着一些将会经常用到的函数。继续跟踪上去。果然发现了猫腻在common.inc.php 发现了

  问题在哪呢? 这段代码大概的意思是 从数组中获取获取参数的方,这里GET,POST,COOKIE方式的参数都有了。

  先来跟踪GET,二层循环中$_GET(这个可以看作是一个全局数组)**$_k ,$_v 获取数组的key value值.${$_k}这里全局注册了变量,假如输入GET型参数 ?test=k4l0n.则在本php页及所有包含本页的php页中 , $test的值都被赋值为了kl0n

  而tpl.php中的$action,$content,$filename变量没有初始化,从而能操纵这些变量写入任意的代码。

  继续跟踪 userLogin类的getUserID函数:

  通过跟踪发现,这里没有对管理员的来源页进行任何检查,只是检查了管理员是否登陆,这就造成了一个CSRF漏洞。到这里漏洞思路就很清晰了,由于变量可控漏洞导致可写入任意代码,由于CSRF漏洞诱导管理员以管理员的权限去写入代码。



时间:(2024-02-06 14:18:51)
本站资源均来自互联网或会员发布,如果不小心侵犯了您的权益请与我们联系。我们将立即删除!谢谢!