《CTF特训营》——利用特性实现的攻击

目录

一、PHP的特性

1.弱类型

(1)简介

(2)实例1

(3)实例2

2.PHP反序列化漏洞

实例1:

3.截断漏洞

4.伪协议

5.变量覆盖

(1)函数使用不当

A.extract函数

B.parse_str函数

C.import_request_variables函数

(2)配置不当

(3)代码逻辑漏洞

6.防护绕过

二、windows系统特性

1.短文件名

2.文件上传


在不同的环境之下,相同的代码可能带来不一样的实现效果,对于开发人员来说,不同的环境应该写出兼容性更好的代码,对于安全人员来说,利用环境,也可以让一行普通的语句变成漏洞。

一、PHP的特性

1.弱类型

(1)简介

在PHP中有一些相等的值:

在PHP中,比较两个值是否相等,可以用“==”或者“===”两种符号,前者会在比较的时候自动进行类型转换,而不是改变原来的值,所以存在漏洞的位置往往是“==”,其中的一个常见错误用法就是:

这个时候,如果input变量的值为labc,则比较的时候labc会被转换为1,if语句的条件满足,进而造成其他的漏洞,另一个常见的场景是在运用函数的时候,参数和返回值经过了类型转换造成漏洞。

(2)实例1

如何才能满足下面这样一个if判断语句?

 需要使两个变量不相等而MD5值相等。这样的思路可以通过MD5碰撞的方法来解决。对于PHP来讲,MD5的返回值是一个32位的字符串,若这个字符串以“0e”开头,类型转换机制将会把它识别为一个科学计数法表示的数字“0”,下面给出两个MD5以0e开头的字符串

aabg7XSs=0e087386482136013740957780965295

aabC9Rqs=0e041022518165728065344349536299

提交这两个字符串即可绕过

(3)实例2

如果上面的“==”变成了“===”就不能成功了,但是仍然可以利用PHP的特性来进行,可以在URL栏中提交a[]=1&b=[]=2成功绕过,因为当我们令MD5函数的参数为一个数组的时候,函数会报错,并返回NULL值,虽然函数的参数时两个不同的数组,但是返回的值都是NULL。

同样是在程序返回值中容易判断错误的函数还有很多,如:strpos,见PHP手册

 这也是一种经常能见到的写法,当str1在str2开头时,函数的返回值是0,而0 == false是成立的,这就会造成开发者逻辑之蛙的结果。

2.PHP反序列化漏洞

PHP提供的serialize和unserialize函数将任意类型的数据转换成string类型或者从string类型还原成任

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
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
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值