PHP弱类型

来自三线的随记
Admin讨论 | 贡献2019年5月13日 (一) 09:35的版本

0x01 前言

php弱类型以及绕过方式

0x02 知识介绍

php中有两种比较的符号 == 与 ===

<?php
$a == $b;
$a===$b;
?>

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

== 在进行比较的时候,会先将字符串类型转化成相同,再比较

如果比较一个数字和字符串或者比较涉及到数字内容的字符串,则字符串会被转换成数值并且比较按照数值来进行

这里明确说明如果一个数值和字符串进行比较的时候,会将字符串转换成数值


参考利用数值

var_dump(sha1('aaroZmOk') == sha1('aaK1STfY'));
var_dump(sha1('aaO8zKZF') == sha1('aa3OFF9m'));
var_dump(md5('240610708') == md5('QNKCDZO'));
var_dump(md5('aabg7XSs') == md5('aabC9RqS'));

MD5

QNKCDZO

0e830400451993494058024219903391

s878926199a

0e545993274517709034328855841020  

s155964671a

0e342768416822451524974117254469  

s214587387a

0e848240448830537924465865611904  

s214587387a

0e848240448830537924465865611904  

s878926199a

0e545993274517709034328855841020  

s1091221200a

0e940624217856561557816327384675  

s1885207154a

0e509367213418206700842008763514