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

文件包含include

文件包含

第一道题是攻防世界的fileclude

这里第二行我们可以看见告诉我们在flag.php里面 然后检查了两次file1和file2是否为空

如果file2="hello ctf"成立 那么就可以包含file1

这里我们要使用php伪协议 来访问我们需要的flag.php并且将file2的数值改为"hello ctf"

?file1=php://filter/read=convert.base64-encode/resource=flag.php&file2=data://text/plain,hello ctf

这里得到了base64编码过后的flag

解码一下flag = cyberpeace{62a75cf6384c6b312026623dd30a04c8}

第二题file_include

还是文件包含的题 告诉我们有./check.php文件

这道题的关键是绕过base64-encode 所以需要换一个关键字得到了下面的伪协议

filename=php://filter//convert.iconv.SJIS.UCS-4/resource=index.php

猜一下flag在flag.php文件中

filename=php://filter//convert.iconv.SJIS.UCS-4/resource=flag.php

这样就得到了flag='cyberpeace{9214ce27e42b93078a8829e38fee4a8a}

第三道题fileinclude

我们看一下网页源码

这里的php代码写了cookie是language 这里我们仍然需要用到php伪协议

里面告诉了路径/var/www/html/index.php

language=php://filter/read=convert.base64-encode/resource=/var/www/html/index.php

这里涉及到了cookie变量 所以我们可以打开burpsuit进行一下抓包

我们在这里需要设置一下cookie变量

php://filter/read=convert.base64-encode/resource=/var/www/html/flag

(注意这里flag后面不需要加.php 因为网页源码里已经包含了.php)

然后在对应的响应里面我们可以看到回显了一串类似base64编码的字符串 我们对其进行解码

得出flag="cyberpeace{8bda62910569feaf90bbc92426912c14}"

php伪协议

在 PHP 中,伪协议(Pseudo Protocols) 也被称为 流包装器,这些伪协议以 php:// 开头,后面跟着一些参数,用于指定 要执行的操作 或 需要访问的资源。 伪协议表明这些协议并不是一个 真实的外部协议,例如 http 或 ftp。PHP 伪协议的出现是为了提供一个 统一的、简洁的 接口来处理 不同的数据流。这些伪协议可以被看作是一种 桥梁,它们允许开发者 使用常规的文件操作函数来处理各种不同的数据流

  1. file:// ?file=file://D:/soft/phpstudy/WWW/phpcode.txt

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

  3. php://input ?file=php://input [POST DATA]<?php phpinfo()?>

  4. zip:// ?file=zip://D://soft/phpsyudy/WWW/file.zip%23phpcode.txt

  5. compress.bzip2:// ?file=compress.bzip2://D://soft/phpstudy/WWW/file.bz2

    ?file=compress.bzip2://./file.bz2

  6. compress.zlib:// ?file=compress.zlib://D:/soft/phpstudy/WWW/file.gz

    ?file=compress.zlib://./file.gz

  7. date:// ?file=date://text/plain,<php ohpinfo()?>

    ?file=date://text/plain;basse64,PD9waHAgcGhwaW5mbgpPz4=

    ?file=date:text/plain,<php ohpinfo()?>

    ?file=date:text/plain;base64.PD9waHAgcGGhwaW5mbgpPz4=


http://www.kler.cn/a/446028.html

相关文章:

  • 【AI学习】Huggingface复刻Test-time Compute Scaling技术
  • Linux下部署MySQL8.0集群 - 主从复制(一主两从)
  • BenchmarkSQL使用教程
  • JumpServer开源堡垒机搭建及使用
  • OpenHarmony和OpenVela的技术创新以及两者对比
  • vue+springboot+cas配置及cookie传递问题
  • Docker 设置代理的三种方法(2024年12月19日亲自测试)
  • go-zero(十五)缓存实践:分页列表
  • web自动化测试知识总结
  • PostgreSQL 实现相似性搜索
  • qt对话框小结
  • 青少年编程与数学 02-004 Go语言Web编程 05课题、路由管理
  • 弹性裸金属服务器(神龙):助力企业腾飞的云计算“黑科技”
  • 电商商品详情API接口(item get)数据分析上货
  • QT从入门到精通(二) ——信号与槽机制
  • IntoTheBlock 联创:Web3 基础设施正在被过度建设,我们正在盲目行事
  • 【Mongo工具】Mongo迁移工具之Mongo-shake
  • windows C#-使用构造函数
  • ArkUI性能优化(0)—DevEco Profiler调优工具
  • 力扣275.H制数II (二分法 求最大)
  • 二八(vue2-04)、scoped、data函数、父子通信、props校验、非父子通信(EventBus、provideinject)、v-model进阶
  • Qt SizePolicy详解:minimum 与 minimumExpanding 的区别
  • 使用ZLMediaKit 开源项目搭建RTSP 服务器
  • Python爬虫实战:深入Lazada商品详情获取
  • 前端导出PDF的组件及方法
  • C#方法参数修饰符ref/out/in/params