如何绕过php注册,PHP常见绕过(更新ing) Web程序 - 贪吃蛇学院-专业IT技术平台...

弱类型比较

===: 在进行比较的时候,会先判断两种字符串的类型是否相等,再比较

==: 在进行比较的时候,会先将字符串类型转化成相同,再比较,如果比较的是一个字符串和一个数字,则字符串会被转化为数值。 # 例题:

$v1 = _GET(‘v1‘);

$v2 = _GET(‘v2‘);

if($v1!=$v2 && md5($v1)==md5($v2){

echo $flag;

}

解决方案1:利用弱类型比较

字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。若以xe

方式开头则按照科学计数法转化。

$v1=240610708,$v2=QNKCDZO,这两个参数不相等;

md5(’240610708′) 的结果是:0e462097431906509019562988736854

md5(‘QNKCDZO’) 的结果是:0e830400451993494058024219903391

弱类型比较时都转换为0,则判断相等。

解决方案2:利用md5()函数的特点。

md5()函数加密一个数组时会报错,返回null。

因此,只要另$v1,$v2为两个值不同的数组即可绕过。

即url传入:v1[]=1 && v2[]=2

strcmp()函数绕过

strcmp()函数用来判断两个字符串是否相等,若相等,返回0。php在5.3版本之前若传入的是一个非字符串类型数据,比如数组和对象,则会报错,但在报错的同时会返回0。 # 例题:

$v = _GET[‘v‘];

if(!strcmp($v,$flag){

echo $flag;

}

解决方案

url传入:v[]=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值