【PHP代码审计】TP框架初次了解学习

文章目录

  • TP框架介绍
  • TP框架审计要点
  • TP框架文件目录
  • TP框架入口目录
  • TP框架路由写法
  • TP框架调试模式

TP框架介绍

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。最早诞生于2006年初,2007年元旦正式更名为ThinkPHP,并且遵循Apache2开源协议发布。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进。
ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

TP框架审计要点

首先,我们可以通过一些页面识别我们测试的网站是否是TP框架,就像下图这种界面,一眼就可以看出来
【PHP代码审计】TP框架初次了解学习_第1张图片
还通过一些识别工具类似cms识别、goby之类的都可以识别这个框架
如果网站开启了调试模式还可以通过这个图标判断
在这里插入图片描述
从代码层面就可以搜索一些关键字了,类似于version之类的
【PHP代码审计】TP框架初次了解学习_第2张图片
还有就是thinkphp属于MVC框架,controller下面基本是程序核心功能的代码,因为有一些涉及到二次开发,会更改访问控制器代码的规则,所以可以前台多点,代码多看就可以熟悉访问规则进而挖掘漏洞,下面列举一下文件目录。

TP框架文件目录

下面就是开发手册中框架目录部分,通过这个简单认识一下各文件夹功能模块,也可来辨认是否TP框架。
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ … 更多类库目录
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共(函数)文件
│ ├─config.php 应用(公共)配置文件
│ ├─database.php 数据库配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 基础定义文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─think 命令行入口文件

TP框架入口目录

下载一个网站大概看一下
【PHP代码审计】TP框架初次了解学习_第3张图片
这里定义常量应用目录之后加载start.php

跟进看一下
【PHP代码审计】TP框架初次了解学习_第4张图片
加载了一个base.php文件,跟进看一下
【PHP代码审计】TP框架初次了解学习_第5张图片
定义了很多常量

TP框架路由写法

可以看一下如下代码,如果不是这种MVC框架类的就可以直接通过访问具体文件触发功能,但是这种呢需要用到下面的写法,才可以访问到具体代码块。
【PHP代码审计】TP框架初次了解学习_第6张图片
比如我们要访问这个test函数
可以通过s=控制器/模块/函数来访问
【PHP代码审计】TP框架初次了解学习_第7张图片
也可以通过index.php/控制器/模块/函数来访问
【PHP代码审计】TP框架初次了解学习_第8张图片

TP框架调试模式

我们在本地搭建环境后,如果进行挖漏洞或者查看他访问模式之类的都可以在本地开启调试模式,帮助我们掌握更多的信息,更改位置如下
【PHP代码审计】TP框架初次了解学习_第9张图片
可以看到我们可以在config文件中的app_debug开启或关闭调试信息,当开启时我们点击如下图标可以对网站访问流程、错误信息、sql语句等进行监控调试
在这里插入图片描述

【PHP代码审计】TP框架初次了解学习_第10张图片

你可能感兴趣的:(PHP代码审计,渗透测试)