分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

PHP常见绕过(更新ing)

发布时间:2023-09-06 02:20责任编辑:白小东关键词:PHP
弱类型比较

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

# 例题:$v1 = _GET(‘v1‘);$v2 = _GET(‘v2‘);if($v1!=$v2 && md5($v1)==md5($v2){ ???echo $flag;}解决方案1:利用弱类型比较 ?字符串的开始部分决定了它的值,如果该字符串以合法的数值开始,则使用该数值,否则其值为0。若以xe ?方式开头则按照科学计数法转化。 ?$v1=240610708,$v2=QNKCDZO,这两个参数不相等;md5(’240610708′) 的结果是:0e462097431906509019562988736854md5(‘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

PHP常见绕过(更新ing)

原文地址:https://www.cnblogs.com/Jie-Fei/p/9886591.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved