ctf php侧漏,【CTF】PHP漏洞(学习积累中)

本文介绍了PHP中的几个常见安全漏洞,包括strcmp函数的误用导致的侧漏,MD5碰撞的利用,以及JSON解码时的绕过技巧。通过实例展示了如何利用这些漏洞,并提供了防止此类攻击的方法。
摘要由CSDN通过智能技术生成

1. strcmp字符串比较

strcmp() 函数比较两个字符串,且对大小写敏感

语法:strcmp(string1,string2);

strcmp函数比较字符串的本质是将两个变量转换为ascii,然后进行减法运算,然后根据运算结果来决定返回值。

0 - 如果两个字符串相等

<0 - 如果 string1 小于 string2

>0 - 如果 string1 大于 string2

define('FLAG', 'flag{1}');

if (isset($_GET['flag'])) {

if (strcmp($_GET['flag'], FLAG) == 0) {

echo "success, flag:" . FLAG;

}

}

如果一个数值和字符串进行比较的时候,会将字符串转换成数值,strcmp就会比较出错,返回NULL,NULL==0成立,得到flag

GET传入flag[]=1就能绕过了

2. md5碰撞

define('FLAG', 'flag{2}');

if (isset($_GET['a']) and isset($_GET['b'])) {

if ($_GET['a'] != $_GET['b']

&& md5($_GET['a']) == md5($_GET['b'])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值