freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

CTF知识点: 关于PHP运算符=== 与==的总结
南城夕雾 2022-02-06 22:47:24 96181
所属地 河南

0x01

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

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

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

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

1 <?php
2 var_dump("admin"==0);  //true
3 var_dump("1admin"==1); //true
4 var_dump("admin1"==1) //false
5 var_dump("admin1"==0) //true
6 var_dump("0e123456"=="0e456789"); //true 
7 ?>  //
上述代码可自行测试

1 观察上述代码,"admin"==0 比较的时候,会将admin转化成数值,强制转化,由于admin是字符串,转化的结果是0,自然和0相等

2 "1admin"==1 比较的时候会将1admin转化成数值,结果为1,而“admin1“==1 却等于错误,也就是"admin1"被转化成了0,为什么呢??
因为在转化前会识别第一个字符,第一个字符是数字那么就会把该字符串当成数字,该字符串后面的字符会被忽略,如果字符串的第一个字符不是数字,那么就会将该字符串强制转换成数值。所以我们发现"1admin"==1 比较的结果是ture,而“admin1“==1 比较的结果是false

3 "0e123456"=="0e456789"相互比较的时候,会将0e这类字符串识别为科学技术法的数字,0的无论多少次方都是零,所以相等,此类弱比较缺陷,往往用来绕过一些md5加密以0e开头的字符串的比较

0x02

对于严格的比较类型,我们可以利用md5函数处理数组类型会返回false的特性,从而利用false=false来绕过

图片.png

0x03

图片.png

以下是收录的一些 0e开头的字符串 md5加密后仍为0e开头的一些md5值

图片.png

0x04

当要求 $a==$b 且 md5($a)≠ md5($b)时可以考虑使用浮点精度绕过

图片.png

0x05

当要求

(string)$_POST['a'] !== (string)$_POST['b'] && md5($_POST['a']) === md5($_POST['b'])
a=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%00%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%55%5d%83%60%fb%5f%07%fe%a2
b=%4d%c9%68%ff%0e%e3%5c%20%95%72%d4%77%7b%72%15%87%d3%6f%a7%b2%1b%dc%56%b7%4a%3d%c0%78%3e%7b%95%18%af%bf%a2%02%a8%28%4b%f3%6e%8e%4b%55%b3%5f%42%75%93%d8%49%67%6d%a0%d1%d5%5d%83%60%fb%5f%07%fe%a2
# php安全 # MD5碰撞 # php代码审计 # CTF解题技能
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 南城夕雾 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
南城夕雾的学习笔记
ctf-php
南城夕雾 LV.6
这家伙太懒了,还未填写个人描述!
  • 56 文章数
  • 148 关注者
谈谈域渗透中常见的可滥用权限及其应用场景(二)
2022-12-16
Hack The Box 系列域渗透之靶机Multimaster
2022-12-12
Hack The Box 系列域渗透之靶机Cascade
2022-12-02