一.开启环境,点击链接
二. 查看源代码——发现PHP弱类型
## 1. PHP 比较 2 个值是否相等可以用 “ == ” 或 “ === ”,“ == ” 会在比较时自动转换类型而不改变原来的值,因此这个符号经常出现漏洞。“ == ” 比较相等的一些常见值如下,当某些语句的判断条件是使用 “ == ”来判断时,就可以使用弱类型来替代。值得一提的是 “0e” 开头的哈希字符串,PHP 在处理哈希字符串时会把每一个以 “0E” 开头的哈希值都解释为 0。
Copy
‘’ == 0 == false
‘123’ == 123
‘abc’ == 0
‘123a’ == 123
‘0x01’ == 1
‘0e12346789’ == ‘0e987654321’
[false] == [0] == [NULL] == [’’]
NULL == false == 0
true == 1
三.构造出 payload,提交获得 flag
构造出 payload,提交获得 flag。 要使得一个变量值等于 1 且不是数字,这真是件矛盾的事情,不过通过传递一个弱类型的变量就解能出来。构造出 payload,提交获得 flag。