代码审计-Yii2 反序列化RCE1
代码 序列化 审计 yii2
2023-09-14 08:56:56 时间
composer create-project yiisoft/yii2-app-basic app
搜索__destruct
和__wakeup
grep -A 10 -rn "__destruct"
yii\db\BatchQueryResult
:
这里调用了close,搜索close发现
yii\web\DbSession
类中的close
:
而这里又调用了getIsActive
public function getIsActive()
{
return session_status() === PHP_SESSION_ACTIVE;
}
yii2中的debug和gii这两个默认扩展都存在(不一定要开启)时,这里session_status()返回true
yii\web\MultiFieldSession
的composeFields
:
call_user_func
可控
而yii\rest\IndexAction
中的run
public function run()
{
if ($this->checkAccess) {
call_user_func($this->checkAccess, $this->id);
}
return $this->prepareDataProvider();
}
其中call_user_func
两个可控参数,可以构造传入对象作参数形式,例子:[(new test), "aaa"]
,调用其中的aaa
方法.
相关文章
- php 使用php-cs-fixer统一代码风格
- 代码审计-Typecho反序列化getshell
- x264代码剖析(十六):核心算法之宏块编码中的量化编码
- 使用Source Monitor检测Java代码的环复杂度
- Android 系统jni到hal层回调代码
- 电力系统短期负荷预测(Python代码+数据+详细文章讲解)
- 用于大规模 MIMO 检测的近似消息传递 (AMP)(Matlab代码实现)
- #华为云·寻找黑马程序员#【代码重构之路】如何“消除”if/else
- 基于信息共享搜索策略的自适应灰狼算法-附代码
- Java代码质量监控工具Sonar安装
- 剑指 Offer 37. 序列化二叉树-深度优先遍历-力扣双百代码
- 数据结构 - 希尔排序(Shell's Sort) 具体解释 及 代码(C++)
- 【轴承故障检测】滚动轴承中进行基于振动的故障诊断研究(Matlab代码实现)