首页 > 其他分享 >[ACTF2020 新生赛]Include

[ACTF2020 新生赛]Include

时间:2024-11-01 21:46:23浏览次数:4  
标签:协议 ACTF2020 php 文件 新生 flag PHP file Include

链接:https://buuoj.cn/challenges#[ACTF2020 新生赛]Include。

打开环境后如下,只有一个 "tips" 的超链接。

访问 tips,留意传入了 "file" 参数。

接下来,可以尝试下路径穿越:?file=flag.php../../../../../etc/passwd

可以看到,存在路径穿越漏洞,但是通过路径穿越漏洞并没有读取到根目录下的 flag 文件。

这时候,回过头去再看访问 tips 时的情况。

可以看到,file 参数被设置为了 "flag.php",因此,有可能 flag 是藏在了 flag.php 文件内,以注释的方式存放着,因此就需要考虑如何能够成功的读取到 flag.php 文件的源码。

下面直接给出 Payload:?file=php://filter/read=convert.base64-encode/resource=flag.php

知其然,知其所以然。

在 PHP 中, 存在着 "伪协议" 这一特性。

即,PHP 带有很多内置 URL 风格的封装协议,可用于类似 fopen、copy、file_exists、filesize 的文件系统函数。 除了这些封装协议,还能通过 stream_wrapper_register 函数来注册自定义的封装协议。

总而言之,PHP 伪协议就是用于处理文件的一种协议,比如说在 include 一些文件时,使用各种伪协议就可以特定化的处理该文件或决定如何访问文件、解析文件。

在 PHP 中,支持伪协议的函数有如下:

  • include。
  • include_once。
  • require。
  • require_once。
  • fopen。
  • file。
  • readfile。
  • file_get_contents。
  • ...。

而伪协议的分类有如下:

  • file://。
  • php://。
  • zip://。
  • ...。

其中,"php://" 伪协议用于访问各个输入/输出流。

"php://" 伪协议的条件:

  • allow_url_fopen:off/on。
  • allow_url_include:off/on(php://input、php://stdin、php://memory、php://temp 伪协议需要 on)。

这里着重介绍以下 "php://" 伪协议中的 "php://filter"伪协议。

php://filter 是 PHP 中的一种特殊的伪协议,它允许对数据进行过滤处理。它可以通过输入流或输出流来操作数据,常用于对文件、数据流等进行编码、解码、压缩等处理。

主要用途:

  • 对文件内容进行转换,如 base64 编码、ROT13 加密、字符串大小写转换等。
  • 对 HTTP 请求的输入或输出流进行过滤。

基本的语法:php://filter/read=<过滤器列表>/resource=<操作目标>

因此,本题可以使用 PHP 伪协议读取 "flag.php" 文件源码。

最后,将得到的 Base64 字符串解码后即可得到 flag。

标签:协议,ACTF2020,php,文件,新生,flag,PHP,file,Include
From: https://www.cnblogs.com/imtaieee/p/18521327

相关文章

  • [ACTF2020 新生赛]Exec
    题目链接:https://buuoj.cn/challenges#[ACTF2020新生赛]Exec。打开后,环境如下。尝试输入"127.0.0.1",抓取请求包。POST/HTTP/1.1Host:038dc28f-5191-4958-8946-1127f62ad770.node5.buuoj.cn:81Content-Length:16Cache-Control:max-age=0Upgrade-Insecure-Requests:......
  • Javascript中includes函数
    用处用于数组和字符串,用于判断数组是否包含某个值。或者用于字符串是否包括某个子串。如果找到该值或者字符串,则返回true,否则返回false语法:arr.includes(valueToFind[,fromIndex]) valueToFind:必需。需要查找的元素值。fromIndex:可选。从该索引处开始查找 valueToFind......
  • [SWPUCTF 2021 新生赛]easy_sql的write up
    开启NSSCTF靶场,在浏览器中访问链接,看到让我们输入点什么还有标签页名字提示:"参数是wllm"直接/?wllm=1访问一下:这里就直接用sqlmap直接爆破了:查看数据库有哪些:pythonsqlmap.py-u"http://node4.anna.nssctf.cn:28961/?wllm=1"--dbs看到test_db就是这个数据库,其......
  • [ACTF2020 新生赛]Exec
    题目链接:https://buuoj.cn/challenges#[ACTF2020新生赛]Exec。打开后,环境如下。尝试输入"127.0.0.1",抓取请求包。POST/HTTP/1.1Host:038dc28f-5191-4958-8946-1127f62ad770.node5.buuoj.cn:81Content-Length:16Cache-Control:max-age=0Upgrade-Insecure-Requests:......
  • [ACTF2020 新生赛]Include
    链接:https://buuoj.cn/challenges#[ACTF2020新生赛]Include打开环境后如下,只有一个"tips"的超链接。访问tips,留意传入了"file"参数。接下来,可以尝试下路径穿越:?file=flag.php../../../../../etc/passwd。可以看到,存在路径穿越漏洞,但是通过路径穿越漏洞并没有读取到根......
  • 驰骋工作流:以全面配置,重塑企业流程管理新生态
            在企业数字化转型的浪潮中,工作流系统已成为企业高效运转的核心驱动力。而驰骋工作流,犹如一颗璀璨的明星,凭借其全面的配置项,在众多工作流解决方案中脱颖而出,为企业流程管理带来了前所未有的便捷与高效。一、全面配置:满足企业复杂多样的业务需求       ......
  • 宝塔+DVWA function allow_url_include Disabled错误
    问题描述宝塔配置DVWA出现functionallow_url_include:Disabled错误解决方法查看DVWA文件夹中的php.ini。一般默认是正确的查看网站php环境的配置文件。宝塔默认路径为:/www/server/php/80/etc/php.ini注意,本人网站使用的是php80版本,所以路径中的数字是80,请根据实际......
  • ZZJC新生训练赛第十二场题解
    难度分类(同一难度下按字典序上升)入门:G简单:C,E,A中等:F,D,B困难:HG-解题思路按照题意模拟即可G-代码实现#include<bits/stdc++.h>intmain(){std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);std::strings;......
  • 基于springboot+vue的Java的新生入学报到系统的设计与实现(源码+lw+部署文档+讲解等)
    课题摘要本课题聚焦于设计和开发一个高效、便捷、准确的基于SpringBoot+Vue的Java新生入学报到系统,以优化新生报到流程,提高学校迎新工作的效率和质量,为新生提供良好的入学体验。该系统涵盖新生信息管理、报到流程管理、宿舍分配管理、缴费管理、迎新通知与指引、数......
  • [ACTF新生赛2020]usualCrypt
    [ACTF新生赛2020]usualCrypt总体分析点进byte_40E0E4函数界面,大概就能猜到解密与base64解密有关了点进sub_401080()函数确实是常见的base64加密但这里有两个自定义函数sub_401000()和sub_401030(a)sub_401000()intsub_401000(){inti;//eaxcharv1;//cl......