电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 1294 人浏览分享

记一次dedecms5.8.1远程代码执行分析

[复制链接]
1294 0
首先这里的原创的文章
https://xz.aliyun.com/t/10331#reply-17078
根据这个表哥的思路来分析的
我们先看poc

212415hz8irr8i6q82bvq1.jpg.thumb.jpg

我们定位到/plus/fink.php这个文件

212428mzljg6fkmjmg94zt.jpg.thumb.jpg

我们在这里下一个断点

然后我们f7往下走到showMag这个函数
if ($dopost== 'save') {
    $validate = isset($validate) ?strtolower(trim($validate)) : '';
    $svali =GetCkVdValue();
    if ($validate== '' || $validate!= $svali) {
        ShowMsg('验证码不正确!', '-1');
        exit():
99.jpg

来到这个函数之后 我们可以看到这里$gurl如果等于-1的话
进行$_SERVER[‘HTTP_REFERER’] 复制给$gourl

这里没有做任何过滤直接赋值给$gourl了

212438akvksgkfwpxlwbee.jpg.thumb.jpg

可以看到此时的$gourl是我们的恶意代码

98.jpg

这里进行了字符串的拼接
此时可以看到$func是包含我们的poc的

我们继续往下走

96.jpg

这里进行了一系列的拼接
此时的$msg是包含我们的恶意代码的
$tpl->LoadString($msg);

我们进入LoadString这个方法

93.jpg

这里进行了一次赋值

然后我们进入到display这个方法

92.jpg

再来到这个方法

91.jpg

调用GetResult方法赋值给了$result
此时的$result是包含我们的恶意代码的

然后我们来到
CheckDisabledFunctions
这个方法
因为他对$result进行了操作

所以我们跟进去

90.jpg

这里要进行一个黑名单的绕过
这里没有对双引号进行监测 php中双引号中的字符串是可以解析为函数的
所以实现了一个绕过

89.jpg

判断完之后这里进行了写入操作

88.jpg

然后这里进行了包含执行‘

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.