CTFshow:WEB3

题目:

提示:这里简述项目相关背景:

进入题目链接,观察到页面展示了部分源码,为PHP语言,查询得知其中include函数涉及文件包含漏洞

随着网站业务的需求,程序开发人员一般希望代码更灵活,所以将被包含的文件设置为变量,用来进行动态调用,但是正是这种灵活性通过动态变量的方式引入需要包含的文件时,用户对这个变量可控而且服务端又没有做合理的校检或者校检被绕过就造成了文件包含漏洞
include():当使用该函数包含文件时,只有代码执行到include()函数时才将文件包含进来,发生错误时之给出一个警告,然后继续向下执行。

在这里插入图片描述

可通过php伪协议进行包含
PHP伪协议事实上就是PHP支持的协议与封装协议
↓↓

1、File://          -- 访问本地文件系统 
2、http://          --访问http(s)网址 
3、Phar://           --PHP归档 
4、Php://          --访问各个输入/输出流 
5、Zlib://          --压缩流 
6、Data://          --数据
7、Glob://   		--查找匹配的文件路径模式
8、ftp://   		--访问ftp(s)URLs
9、ssh2:// 		--Secure Shell 2
10、rar:// 		--RAR
11、ogg:// 		--音频流
12、expect:// 		--处理交互式的流

通过php://包含
Php://伪协议有很多的用法,常用的就是

  1. php://filter --用于读源码
  2. php://input --用于执行php代码

利用php://input :

此协议需要allow_url_include为on,可以访问请求的原始数据的只读流,将post请求中的数据作为PHP代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input,同时post想设置的文件内容,php执行时会将post内容当作文件内容。

问题解决

确认该题为PHP文件包含漏洞后,通过了解可使用代理抓包软件Burpsuit去抓包,并且使用PHP伪协议中的php://input来在包的最下面写上<?php system('ls')?>执行系统命令查看当前目录的文件,来查看有无目标文件。

php://input              -- GET请求的url中拼接伪协议
<?php system('ls')?>`   -- post请求内容构造需要执行的代码

打开代理,对该网页进行拦截抓包,将该数据包内容按上述代码内容进行修改,然后进行放包操作。
在这里插入图片描述
我们观察到放包后页面出现ctf_go_go_go index.php字段,ctf_go_go_go文件应该就是藏匿flag的文件。
在这里插入图片描述
接着我们直接在url地址栏中输入url参数,访问ctf_go_go_go文件。
在这里插入图片描述
回车访问后,得到目标flag:
在这里插入图片描述
最后将flag进行提交,显示答案正确。
在这里插入图片描述


个人体会:

  1. 之前没有接触过文件包含漏洞的内容,也是通过该题进行初次学习,大部分步骤是通过查阅习得,还有很多包含方式与PHP伪协议没有学习,之后需要继续深入学习。
  2. burpsuite目前只接触了最基础的抓包改包放包功能,还有很多功能没有尝试,需要更多实践来进行训练提高。
  • 32
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值