[极客大挑战 2019]Secret File 1解题思路

  1. 进入题目,只有相应提示信息,查看网页源码,如下
    在这里插入图片描述
    可得一个有效信息
  2. 点击 Archive_room.php 尝试访问,发现只有一个 secret 按钮,可点击,同样先查看源码,看看情况再点击,避免无用功
    在这里插入图片描述
  3. 发现 action.php 文件,尝试访问
    在这里插入图片描述
    宛如晴天霹雳,唰的一下,我啥也没看到哇~~~
  4. 你跳的欢,没关系,我抓包,一步步搞,总能得到些许有用的东西吧?回到上一步,即访问 Archive_room.php 文件,开启代理,burp suite 抓包走一波,抓包后,右键 —> Send to Repeater
    在这里插入图片描述
    发现端倪,secr3t.php 文件应当问中间过度文件,后续的包对我们没啥用处了
  5. 访问 secr3t.php 文件
<html>
    <title>secret</title>
    <meta charset="UTF-8">
<?php
    highlight_file(__FILE__);
    error_reporting(0);
    $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){
        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里
?>
</html>

得到关键信息,flag 所在位置,哇,感觉要突破了~~
6. 访问 flag.php
在这里插入图片描述
当场裂开,好鸡儿欠啊,以为是背景色掩盖了 flag,查看源码并修改背景色依然未发现。emmmm
7. 根据提示,可知 flag 就在此处,但是前端看不到,应该是写在了 php 文件中,那么怎样获取 PHP 文件内容呢?猜测应该是 secr3t.php 存在文件包含漏洞
8. 审计 secr3t.php,发现过滤了一些关键字,但是未过滤 filter,那么我们可以尝试用 php://filter 来获取 flag.php 的内容,构造如下payload:

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

注入测试:
在这里插入图片描述
得到 flag.php 加密后的内容,拿去解密即可:
在这里插入图片描述
9. 总结
主要考察文件包含漏洞与PHP伪协议的相关知识点。每步都有提示,难度不算太大。


古人学问无遗力,少壮工夫老始成。纸上得来终觉浅,绝知此事要躬行。 --陆游《冬夜读书示子聿》

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值