红日代审Day3-实例化任意对象漏洞
class_exists 1class_exists(string $class, bool $autoload = true): bool class 类名。名称以不区分大小写的方式匹配。 autoload 如果尚未加载,是否自动加载。 返回值 如果 class 是已经定义的类,则返回 **true**,否则返回 **false**。 demo: 123456789101112131415<?phpspl_autoload_register(function ($class_name) { include $class_name . '.php'; // 检查 include 后是否声明了类 if (!class_exists($class_name, false)) { throw new LogicException("Unable to load class: $class_name"); }});if...
红日代审Day2-filter_var函数缺陷
参考:https://github.com/hongriSec/PHP-Audit-Labs/blob/master/Part1/Day2/files/README.md filter_var 1filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed value 要过滤的内容。注意标量值在过滤前,会先转换成字符串。 filter 要应用的过滤器。可以使用 FILTER_VALIDATE_\* 常量作为验证过滤器,使用 FILTER_SANITIZE_\* 或 FILTER_UNSAFE_RAW 作为清理过滤器,也可以使用 FILTER_CALLBACK 作为自定义过滤器。 注意: 默认值为 **FILTER_DEFAULT**,是 FILTER_UNSAFE_RAW 的别名。这将导致默认情况下不进行过滤。 options 要么是选项的关联 array,要么是过滤器 flag 常量 FILTER_FLAG_\* 的位掩码。 如果 filter...
红日代审Day1-in_array函数缺陷
参考:https://github.com/hongriSec/PHP-Audit-Labs/blob/master/Part1/Day1/files/README.md in_array()函数 官方解释: 1in_array(mixed $needle, array $haystack, bool $strict = false): bool 大海捞针,在大海(haystack)中搜索针( needle),如果没有设置 strict...
ThinkPHP漏洞总结
基本信息Thinkphp是一个快速、兼容且简单的轻量级国产PHP开发框架,遵循Apache 2开源协议发布,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP 5.0以上版本,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展。 ThinkPHP发展至今,核心版本主要有以下几个系列,ThinkPHP 2系列、ThinkPHP 3系列、ThinkPHP 5系列、ThinkPHP 6系列,各个系列之间在代码实现及功能方面,有较大区别。其中ThinkPHP 2以及ThinkPHP 3系列已经停止维护,ThinkPHP 5系列现使用最多,而ThinkPHP 3系列也积累了较多的历史用户。版本细分如下图所示: 框架识别ioc判断通过访问/favicon.ico: 报错随便在url后面输入字符,如果报错出现**:)**则为think...
SpEL表达式注入
概述Spring Expression Lanuage(SpEL),Spring语言表达式,是一个支持查询和操作运行时对象导航图功能的强大的表达式语言,语法类似于传统EL。创建的初衷是为了给Spring社区提供一种简单而高效的表达式语言,一种可贯穿整个Spring产品组的语言。这种语言特性基于Spring产品的需求而设计。虽然SpEL引擎作为Spring组合里的表达式解析的基础,但不直接依赖于Spring。 应用场景SpEL的设计初衷是为了简化开发工作,提供一种在运行时动态解析和执行表达式的机制,常用于如下场景: 配置Bean的属性值(配合@Value注解) Spring Security权限表达式 Spring Data JPA查询表达式 条件逻辑控制(如SPEL条件注解@ConditionalOnExpression) 模板引擎中处理动态数据 静态方法调用或对象动态构造 用法注解@Value中1234//@Value能修饰成员变量和方法形参//#{}内就是表达式的内容@Value("#{表达式}")public...
EL表达式注入
概述Expression...










