ctf特训营_CTF小白入门-PHP语言特性(二)

38d831dec187c830a64f2a86cd3ce7fa.png

上一篇文章中,介绍了PHP语言的 弱类型和反序列化特性,这一篇介绍 截断、伪协议和变量覆盖特性,这三点内容也常常出现在CTF考试中。

  • 截断

因PHP内核是C语言实现的,当PHP字符串处理遇到NULL(x00)时,就会当作字符串结束标志来处理。在CTF比赛中,我们可以利用这个特点处理掉变量末尾我们不需要的字符。

如果一段PHP代码如下所示,

<?

正常在上一段代码中是不存在包含任意文件漏洞的,如果借助NULL可以实现任意文件包含。例如:我们构造以下 payload,

?file=../../etc/passwd%00

即可读到 passwd 文件内容。

当然,随着PHP版本更新,这个漏洞已经被修复。


~~ 码字收集资料不易,大家不要光顾着收藏哦,记得点赞!~~

~~ 码字收集资料不易,大家不要光顾着收藏哦,记得点赞!~~

~~ 码字收集资料不易,大家不要光顾着收藏哦,记得点赞!~~


  • 伪协议

伪协议是指PHP可以通过一些自定义机制可以读取计算机中的文件。在CTF比赛中,单独考察伪协议内容较少,结合其他考点一起考。

PHP使用伪协议读取文件,需要先在PHP设置文件中,配置两个参数如下,之后才可以通过伪协议读取文件。

allow_url_fopen

PHP语言支持的伪协议有以下几种,

php

当源码中,遇到以上函数时,可以考虑是否有伪协议内容作为考点。

考试中,通常遇到的场景时用以下读取。如果服务器中存在 index.php 而且存在文件读取漏洞,通过下面的payload可以读取到 base64编码后的字符串。

php
  • 变量覆盖

变量覆盖是指因PHP中的某些函数使用不当导致用户输入的变量覆盖当前变量。主要涉及到extract函数、parsestr函数、import_request_variables函数。上面三个函数的作用是一样的,就是将用户输入的鼻梁复制到当前工作目录,并覆盖当前的变量。

看一个例子,

<?

上面是一段伪代码,当我们输入

?

可以覆盖原来预设的sss这个变量,可以输出flag。

  • 参考文献
  1. PHP伪协议在CTF中的应用
  2. CTF特训营:技术详解、解题方法与竞赛技巧
CTF特训营是一种为了训练和提高参与者网络安全知识和技能的活动或培训。CTF代表Capture The Flag(夺旗赛),是一种网络安全竞技,参赛选手通常需要在一定时间内解决一系列与信息安全相关的题目,攻击和防守并获取旗帜来获得积分。 PDF文件通常是一种常用的电子文档格式,可包含文本、图像、链接、表单等内容。PDF格式文件的特点是易于共享、可读性好且文件大小较小,广泛应用于文件传输、存储和打印等方面。 CSDN是中文IT技术社区平台,为开发者提供技术博客、问答、培训等服务。在CSDN上,用户可以发布技术文章、分享经验、解答问题,也可以浏览其他用户分享的技术资源。 结合以上三个关键词,可以推测出"CTF特训营 PDF CSDN"的含义可能是关于CTF特训营PDF文件在CSDN上的相关内容。可能是包含CTF特训营相关介绍、教程、参考资料等的PDF文件可以在CSDN平台上找到和下载。 CTF特训营PDF文件在CSDN平台上的存在,为参与者提供了方便快捷的学习和参考资源。学习者们可以通过下载PDF文件,了解CTF竞技的规则、技巧和策略,提高他们在网络安全领域的知识水平和技能。同时,他们还可以借助其他CSDN用户的经验分享,深入理解和学习关于CTF特训营的知识。 总之,CTF特训营PDF文件在CSDN上的存在对于提高参与者的网络安全知识和技能非常有帮助,同时也丰富了CSDN平台上关于网络安全方面的技术资源。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值