[ZJCTF 2019]NiZhuanSiWei

  • 这道题所有的考点我都了解过,甚至用来出过类似的题目,但是作者把它们套娃得非常不错,做下来感觉非常有意思!

  • 考点 includefile_get_contents 函数的利用以及 php://inputphp://filter/read=convert.base64-encode/resouce= 伪协议的利用

  • 主界面

    <?php
    $text = $_GET["text"];
    $file = $_GET["file"];
    $password = $_GET["password"];
    if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf")){echo "<br><h1>".file_get_contents($text,'r')."</h1></br>";if(preg_match("/flag/",$file)){echo "Not now!";exit(); }else{include($file);  //useless.php$password = unserialize($password);echo $password;}
    }
    else{highlight_file(__FILE__);
    }
    ?>
    
  • 非常的简单易懂。我们可以传递三个值,首先file_get_contents($text,‘r’)的值需要等于 “welcome to the zjctf” 这要怎么做到呢?我们可不知道哪个文件里的内容恰好是这个。但是我们利用php://input伪协议来伪造内容。之前虽然听说过php://input伪协议,这还是第一次使用,涨姿势了!哦对了,这个file_get_contents还能用来使用php://filter协议 接下来会讲到。这简直就是伪协议的天堂函数!

  • 传递之后随着我们的页面上出现几个大字,说明我们闯过第一关了。

  • 接下来题目想让我们传递一个file变量,但是不能有flag,看来flag就是藏在flag.php里面了!既然看不了,我们就来看看这个useless.php内藏什么玄机。哦对了,include这个函数可以用来利用php://filter伪协议,这样我们就能看到useless.php的真面貌了!

  • 然后在到在线网站解一下码就行啦。

    <?php
    class Flag{  //flag.php  public $file;  public function __tostring(){  if(isset($this->file)){  echo file_get_contents($this->file); echo "<br>";return ("U R SO CLOSE !///COME ON PLZ");}  }
    }
    ?>
    
  • 好假虎,原来里面有个类呢!怪不得index.php里的password是用用反序列的。原来include 这个 useless.php文件之后,就能反序列化这个类啦!那这个类里面有个函数,可以file_get_contents一个file,而这个恰恰是我们反序列化字符串里自己写的,那这个file必定是flag.php啊!但是这还是不行,单纯的flag.php我们无法看到flag.php的源码,这里就要用到刚才提到的知识点,file_get_contents是伪协议的天堂,我们这里再用php://filter来看flag.php就大功告成啦!最后的payload。

    http://3c30042e-78d6-49bb-9947-96aeec8253d8.node3.buuoj.cn/?text=php://input&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=flag.php
    

  • 最后base64解密后得到flag

  • 这道题出的真的很好!带着我复习了很多知识点。


    参考链接

    2016xctf一道ctf题目_一个码农的笔记-CSDN博客

[ZJCTF 2019]NiZhuanSiWei相关推荐

  1. 2021-09-01[ZJCTF 2019]NiZhuanSiWei

    [ZJCTF 2019]NiZhuanSiWei 首先根据连接打开得到一个,PHP源码: 根据源码分析,我们需要GET三个参数分别是:text,file,password 首先需要检查是否对text传 ...

  2. 第二十四题——[ZJCTF 2019]NiZhuanSiWei

    题目地址:https://buuoj.cn/challenges 解题思路 第一步:进入题目,展示了php代码 第二步:使用data协议绕过text参数检测 经过代码分析,text参数不能为空,且根据 ...

  3. [BUUCTF-pwn]——[ZJCTF 2019]EasyHeap

    [BUUCTF-pwn]--[ZJCTF 2019]EasyHeap 思路 我们第一个想法肯定是执行l33t这个函数,事实证明被摆了一道.没有结果, 但是我们有system函数我们可以将其放入我们可以 ...

  4. [BUUCTF-pwn]——[ZJCTF 2019]Login

    [BUUCTF-pwn]--[ZJCTF 2019]Login 题目地址:https://buuoj.cn/challenges#[ZJCTF%202019]Login 这道题学习还是很多的, 有的时 ...

  5. [ZJCTF 2019]EasyHeap-house of spirit

    [ZJCTF 2019]EasyHeap-house of spirit 先给出exp,exp中我标明了每一个步骤 每个步骤执行完后,内存中的地址空间我也贴出来了 exp from pwn impor ...

  6. BUUctf刷题第三天

    [极客大挑战 2019]BuyFlag 进去是一个网页,查看源代码 说只有啥玩意的学生才能买,就抓包看看 发现cookie后面有个user=0,改成一试试 改完后说我是啥啥啥的学生了可以支付购买了 结 ...

  7. BUUCTF中web方向题目记录(二)

    双写绕过 BUUCTF[极客大挑战 2019]BabySQL 好像和前面的题目相似 check.php?username=admin&password=1' 单引号闭合 check.php?u ...

  8. BUUCTF web(三)

    [HCTF 2018]admin 随便注册了一个账号,登陆进去在change password界面源码找到了 Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采 ...

  9. BUUCTF 命令执行/文件包含类型部分wp

    BUU差不多前两页题目中的该类型题,可能会有疏漏 [网鼎杯 2020 朱雀组]Nmap 考察nmap的利用 选项 解释 -oN 标准保存 -oX XML保存 -oG Grep保存 -oA 保存到所有格 ...

最新文章

  1. MpVue开发之swiper的使用
  2. [阿里云]I+的一些探索
  3. qt自定义窗口,其绘制的窗口边框线显示不全
  4. MySQL8.0——Resource Group(资源组)
  5. OpenSplice DDS 分布式DDS网络架构(DDS 6.9.0+VS 2013+Qt 5.8.0 )
  6. 数学常用公式及规律、结论(三)
  7. 011—MySQL 事务
  8. 社区发现 louvain(fast unfolding)算法
  9. Zotero-无法打开zotero数据库
  10. 【AXI】解读AXI协议中的burst突发传输机制
  11. 2010刚出土的句子
  12. [Ubuntu] LightDM 轻量级桌面显示管理器
  13. 帧中继环境中NBMA模式下OSPF的配置
  14. 微信PC端有了新功能,快来看看你知不知道
  15. 计算机怎么的设置音乐,windows7开关机音乐怎么设置_win7如何设置电脑开关机音乐-win7之家...
  16. javascript中sessionStorage 、localStorage 和 Cookie
  17. C/C++浮点数的存储方式 IEEE-754标准,以及实现一个ftoa函数将浮点数转换为字符串
  18. 安卓手机如何查看WIFI密码
  19. python html5 便利店收银系统_基于Python的Django框架实现的中式快餐厅管理信息系统网站...
  20. 基因数据处理50之cs-bwamem、bwa、snap、bwa-mem与art比较

热门文章

  1. 热门的2B企业服务,资本是如何解读和判断的
  2. 将Java中的内容直接存储为二进制文件
  3. weblogic反序列化
  4. 雷军演讲刷屏,我对项目经理人的发展又有了2点想法……
  5. ubuntu linux通过rclone 挂载onedrive 到本地磁盘
  6. 对象作为HashMap的key
  7. 基于SVN的项目管理——集中与分散
  8. surface pro 7 linux,微软正式发布Surface Pro 7
  9. 共享内存shmget的郁闷
  10. informatica 学习日记整理(转)