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
    评论
你好!对于你提到的 CTFShowweb3 第三题,很抱歉我无法提供具体的题目答案或直接解答。CTF题目的答案和解题思路通常需要参赛者自己进行分析和研究。我可以给你一些关于 CTF 中 web3 题目的一般性提示和常见解题思路,希望能对你有所帮助。 在 CTF 中,web3 题目通常涉及到与 Web 技术相关的漏洞和攻击,包括但不限于代码注入、SQL 注入、XSS 攻击、文件上传等。解题的关键是理解题目要求、审计代码和进行有效的漏洞利用。 对于 web3 题目,你可以从以下几个方面入手: 1. 题目分析:仔细阅读题目描述,观察页面内容、URL 参数和隐藏字段等信息,理解题目要求和可能的攻击点。 2. 源代码审计:查看网页源代码,包括 HTML、CSS 和 JavaScript 部分,寻找可能的漏洞或隐藏信息。特别留意用户输入的处理方式,是否存在可利用的漏洞。 3. 输入测试:通过输入不同的测试数据,比如特殊字符、长字符串等,测试网页的响应和可能的漏洞反应。尝试绕过输入限制或触发潜在的漏洞。 4. 漏洞利用:一旦找到漏洞,尝试利用它来实现攻击目标。这可能包括获取敏感信息、修改页面内容、提权等。 请记住,在解题过程中遵守 CTF 竞赛的规则和道德准则,不要进行未经授权的攻击行为。祝你在 CTF 中取得好成绩!如果你有其他问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值