您现在的位置是:首页 > 教程 > pbootcms教程pbootcms教程
pbootcms任意代码执行分析
凌寒2024-12-06 23:28:00pbootcms教程已有人查阅
导读今天看到该cms进行了更新,分享一下前段时间发现的一处安全问题漏洞利用写此文时笔者使用的是2.0.9测试版本,发布时间为2020-05-05,更新时间为2020-06-18
今天看到该cms进行了更新,分享一下前段时间发现的一处安全问题漏洞利用
写此文时笔者使用的是2.0.9测试版本,发布时间为2020-05-05,更新时间为2020-06-18
在github上下载源码
安装后去官网获取授权码,登录后台添加授权码即可
正常登录后台,在站点信息中插入如下代码并且保存
保存后我们来到前台首页,使用burpsuite进行抓包,将数据包中的cookie头设为assert,Proxy-Connection头设置为想要执行的php代码,测试图片中使用的代码为system('whoami')
可以看到成功的执行了php代码代码分析
漏洞可以利用的原因在于apps\home\controller\ParserController.php中parserIfLabel函数对if标签解析时安全检验做的不够全面,函数主要存在两处安全校验,
对于第一处if判断,我们可以在函数名和括号之间插入控制字符,如\x01,这样即可绕过该处正则校验,并且可以正常执行php代码,该trick来源于KCon2019的一个议题
完整的ppt可以参见文末链接
对于第二处对 感函数的过滤,完整的校验如下
写此文时笔者使用的是2.0.9测试版本,发布时间为2020-05-05,更新时间为2020-06-18
在github上下载源码
安装后去官网获取授权码,登录后台添加授权码即可
正常登录后台,在站点信息中插入如下代码并且保存
保存后我们来到前台首页,使用burpsuite进行抓包,将数据包中的cookie头设为assert,Proxy-Connection头设置为想要执行的php代码,测试图片中使用的代码为system('whoami')
可以看到成功的执行了php代码代码分析
漏洞可以利用的原因在于apps\home\controller\ParserController.php中parserIfLabel函数对if标签解析时安全检验做的不够全面,函数主要存在两处安全校验,
对于第一处if判断,我们可以在函数名和括号之间插入控制字符,如\x01,这样即可绕过该处正则校验,并且可以正常执行php代码,该trick来源于KCon2019的一个议题
完整的ppt可以参见文末链接
对于第二处对 感函数的过滤,完整的校验如下
if (preg_match('/(\$_GET\[)|(\$_POST\[)|(\$_REQUEST\[)|(\$_COOKIE\[)|(\$_SESSION\[)|(file_put_contents)|(file_get_contents)|(fwrite)|(phpinfo)|(base64)|(`)|(shell_exec)|(eval)|(assert)|(system)|(exec)|(passthru)|(print_r)|(urldecode)|(chr)|(include)|(request)|(__FILE__)|(__DIR__)|(copy)/i', $matches[1][$i])) {
$danger = true;
}
在这里其实做的过滤并不全面,我们可以扩展思路,结合一些其他函数,例如call_user_func函数来进行利用,同时可以参考PHP无参数RCE的考点,将可控输入点转移到请求包的header头中,直接绕过cms中存在的一些过滤项,上面的利用方式中,使用了getallheaders()同时配合一些数组操作函数来达到执行任意代码的目的
本文标签:
很赞哦! ()
上一篇:pbootcms怎么做微信小程序
相关文章
- pbootcms异常提示 Undefined constant"PAGE
- pbootcms百度推送提示not_same_site的解决方法
- pbootcms后台图片上传提示”上传失败:存储目录创建失败!的解决
- pbootcms实现php+ajax文件上传
- pbootcms系统QQ邮箱接受邮件的配置方法
- pbootcms修改权限后仍然提示“会话目录写入权限不足”的解决方法
- lamp分离部署安装pbootcms
- pbootcms符合SEO优化的目录结构分析
- pbootcms提示“未检测到您服务器环境的sqlite3数据库扩展”的解
- pbootcms升级PHP版本需要注意什么
- pbootcms判断用户是否登录并排除Cookie过期但仍显示已登录的方法
- pbootcms加载类文件时错误类名【core\\basic\\Kernel】的解决方
随机图文
-
pbootcms内容发布带反斜杠不显示的解决方法
拿pbootcms来做博客的可能会碰到个问题,那就是发布些教程的时候需要添加路径描述时,例如需要显示appscommonroute.php的时候,这里的路径里有反斜杠 -
pbootcms授权码在哪里填写,pbootcms授权码正确填写的方法
PbootCMS时可能会感到困惑。下载部署好后,打开页面提示:如果没有该域名的有效授权码(),请到pbootcms官网获取,并在网站后台的“全局配置>>配置参数”中填写。 -
pbootcms程序URL路径扁平化目录层级更利于SEO优化
在网站内部优化中,扁平化的目录结构对于一个网站来讲是非常有意义的。我们经常看到一些网站结构混乱,搞的你都不知道哪里是哪里了。而有的网站结构非常清晰 -
pbootcms一个网站绑定两个域名的方法
方法:去pbootcms官网把两个域名都授权,然后把授权码都填写到后台,格式如下图,12345,56789 是第一个域名的授权码
留言与评论 (共有 条评论) |