strpos使用不当引发漏洞

博客探讨了PHP中strpos函数使用不当可能引发的安全漏洞。文章指出,当strpos返回0(匹配开始位置)时,与false的弱比较可能导致误判,从而允许恶意利用。通过示例代码展示了问题所在,并提出了 payload 方式来触发该漏洞。此外,还提供了一个练习题,提到了通过使strpos接收到数组参数来触发返回null,以此绕过条件检查。
摘要由CSDN通过智能技术生成

strpos使用不当引发漏洞

一、strpos函数介绍

在这里插入图片描述

二、漏洞点

从上面的函数介绍中可以看到,strpos函数如果匹配到第二个参数指定的字符串,那么就会返回它的下标。

那么如果被匹配字符串的开头就是我们要匹配的目标字符串,那么strpos函数就会返回0。如果搜索不到,那么就返回false。

问题就出现在这个0和false上,有些开发者会忽略了strpos函数返回0的情况,采用了strpos函数返回值与false进行弱比较的方式,那么就可以造成strpos函数的恶意利用。

例:

<?php

$pass = $_GET['pass'];
    if
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值