Dedecms V5.7后台任意代码执行[CVE-2018-7700]

责声明">
此漏洞的触发器是/dede/tag_test_action.php。原因是绕过csrf_check(),导致任意代码被执行。 查看/dede/tag_test_action.php文件的源代码: 如果直接访问此文件,则将输入csrf_check()...
此漏洞的触发器是/dede/tag_test_action.php。原因是绕过csrf_check(),导致任意代码被执行。
查看/dede/tag_test_action.php文件的源代码:
如果直接访问此文件,则将输入csrf_check()函数。提示令牌错误并退出执行。
关注csrf_check(),函数文件是dede/config.php:

此处的判断仅用于确定令牌值是否等于会话中的令牌,并确定令牌是否存在。从这个角度来看,它似乎更加矛盾。我们不知道Session ['token']的价值,我们不能伪造令牌。有趣的是,当我们登录时,不会生成session ['token'],即session ['token']为null。
在这种情况下,我们只需要构造http://localhost/a.php?token=
这将绕过csrf_check() 绕过后,您可以为$ partcode构建有效负载。 第一种是初始化数据。跟进$ pv-> SetTemplet()来跟踪变量流:
继续遵循DedeTagParse类的LoadSource方法:
在此方法中,我们的传入有效内容将写入inc文件并继续跟踪LoadTemplate:
这里,首先,要确定文件是否存在,很明显它存在。然后将该文件读入$ this-> SourceString字符串。 继续跟踪LoadCache方法:
这里,数据被读入缓存。此时,数据初始化完成。 触发器代码的执行点位于PartView类的Display方法中。源代码如下:
在display()方法中,再次调用DedeTagParse类中的display()方法:

跟进GetResult():
按照AssignSysTag()方法:
最后跟进Runphp方法:
在这里,只需从对象中提取数据并进行一些简单的字符串替换即可成功执行代码。 总之,我们传递的$ partcode变量应符合dedecms模板格式,并带有runphp='yes'标记。
基于此,我们可以构造以下有效载荷:
Partcode={dede: field name='source'runphp='yes'} phpinfo(); {/dede: field} 加上绕过csrf_check()的有效负载,得到最后一个poc: http://localhost/background address/tag_test_action.php?url=a& token=& partcode={dede: field  name='source'runphp='yes'} phpinfo(); {/dede: field}
使用条件:登录背景
解决方案:重新实现csrf_check()函数 黑客业务列表介绍和一般分类: 类别:攻击入侵破解开发 1:攻击业务订单:暂时取消所有此类业务订单[仅销售常规IDC流量] 2:入侵业务清单:包括网站源代码,办公系统,黑色系统,教育系统等。 3:破解业务类:软件,加密文件,二次打包,脱壳等。 4:二次开发业务清单:软件二次开发,源代码二次开发等 5:其他业务订单:特洛伊木马[通过所有防病毒],远程控制,特殊软件等 备注:未提及的业务订单可��据主要类别查询或直接联系客户服务。为避免浪费双方时间,请在咨询前阅读:业务交易流程及相关说明 注意:仅接受正式业务,个人无权接受。收集此内容。
  • 发表于 2018-05-19 00:00
  • 阅读 ( 2686 )
  • 分类:黑客技术

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
不写代码的码农
黑客

2107 篇文章

作家榜 »

  1. 黑客 2107 文章