首先需要触发路由,我们的url如下: http://localhost/tp5.1.41/public/index.php?XDEBUG_SESSION_START=17055&s=thinkphp5.1/fewOo/fewOo 进入run方法 因为复现的是文件包含,所以看看路由是怎么检测的 ,有哪些我们可以构造的. 来到581行,进行代码审计,这里面主要看看path和check函数的功能. 在往下调进入pathinfo() ...
忽略可能导致的业务逻辑漏洞,这里极有可能存在sql注入问题,直接使用tp3.2.5的代码做为演示,跟入代码到ThinkPHP/Library/Think/Model.class.php这里将传入的$_POST数组最终存放到了$this->options['where']就结束了,返回Model类之后会进入到增删该查的sql语句构建代码中,示例代码用的是find(,跟入代码:...
route:路由配置目录 三、ThinkPHP框架最基本的架构 thinkphp是基于MVC模式开发的,业务逻辑、数据、界面显示分离,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。 1、入口文件 用户发起的请求都会经过应用的入口文件,通常是 public/index.php文件。入口文件的内容如下: ...
ThinkPHP5 SQL注入漏洞 && PDO真/伪预处理分析 刚才先知分享了一个漏洞,文中说到这是一个信息泄露漏洞,但经过我的分析,除了泄露信息以外,这里其实是一个(鸡肋)SQL注入漏洞,似乎是一个不允许子查询的SQL注入点。 漏洞上下文如下: 代码语言:javascript 复制 <?php namespace app\index\controller;use app\index\m...
最近也是无聊,想着找点事链子挖一下,最简单的应该就是thinkphp了,便开始了挖掘之路,昨天也看到了一个cve,自己也去挖一个 环境搭建 直接去下载官方的php源码就好了,然后使用phpstduy搭建 自己需要添加一个反序列化的入口 <?phpnamespaceapp\controller;useapp\BaseController;classIndexextendsBaseController{publicfuncti...
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib、RoR的ORM映射和ActiveRecord模式 ...
composer require topthink/think-view, 在thinkphp框架中,利用think-view和think-template模块实现了自定义试图模版的功能, 大概原理如下: 1.根据相应标签解析模版内容, 2.将模版内容写入缓存php文件中, 3.包含缓存php执行模版内容,执行模版中的内容, 思路:我们如果控制模版内容,也许就能控制缓存php文件中的内容,当包...
ThinkPHP5.0在TP5 中parseWhereItem 在Db.class.php,但其实也有一段和 3.2 中差不多的代码:if(isset($val[2]) && 'exp'==$val[2]) { $whereStr .= $key.' '.strtoupper($val[0]).' '.$val[1]; }但是在 TP5.0 却加入了一个全局过滤:...
优点,现在工作的公司用的是thinkphp3.2框架进行开发,TP框架为我们开发者提供了底层的安全过滤功能,所以我在使用TP框架开发的时候并没有很仔细的去想过安全的问题,而最近也是挤出了一点时间,想知道TP框架底层是如何运作的,底层是如何防注入的,看了一下文档,看了一下源码,找了一些资料,整理出了一些TP框架运行的原理...
一次thinkphp渗透测试经历 thinkphp5的命令执行 打开网站,简单粗暴报错发现是thinkphp v5.0.11,版本不高,直接拿前一段时间的rce试下 在尝试的过程中发现有waf,但是漏洞好像没修,查看phpinfo(),发现是php是5.6.31版本,但是禁用了很多函数 ?s=index/\think\app/invokefunction&function=call_user_func_array&vars[...