Web攻防--PHP特性&CTF考点

本文探讨了PHP编程中的常见安全问题,如过滤函数缺陷绕过,以及在CTF(Capture The Flag)比赛中的相关考点。通过示例,解释了==与===的区别,强调了==在比较时的潜在风险。文章提到了MD5的0e开头相等问题以及如何使用数组进行绕过。此外,还讨论了PHP函数如intval、strpos、in_array、preg_match和str_replace的用法,以及如何利用它们进行安全漏洞利用。在CTF场景下,文章介绍了如何利用字符串处理技巧来绕过文件读取的过滤机制,从而访问敏感信息。
摘要由CSDN通过智能技术生成

本文分享的一些PHP代码的缺陷对比函数和CTF的一些考点

知识点:

1.过滤函数缺陷绕过

2.CTF考点与代码审计

例如:在PHP 语言中==与===(区别在于==不会对比类型===类型也会对比)

缺陷:两个等号的缺陷就是不唯一

下图是一个简易的代码,flag的输出条件就是如果我们GET传参的值==$a 那么就输出flag

经过测试可以看到我们传递的参数是x=1admin可以看到代码中$a=1但是还是输出flag了,这就是==的缺陷。

 Md5案例:==时MD5判断方法是0e开头相同的加密值他们就相等。当出现===时采用数组进行绕过(MD5加密不了数组),因为md5不能判断数组返回null值,两边都返回null就会相等。所以我们要是想要输出flag那么就传递数组就可以。

 PHP常用函数:intval:用来获取函数的整数值,改用其他进制进行传参

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值