一、“=”是赋值,“==”是弱对比,“===”是强对比
print_r("***************rn");
if (1=='1'){
print_r("aiyou!!!");
}
if (1==='1'){
print_r("bucuoo!!!");
}
运行结果:
aiyou!!!
二、特殊情况下不同的字符,md5结果相同
if (md5(s878926199a)==md5(240610708))
{
echo md5(s878926199a);
echo "rn";
echo md5(240610708);
echo "rn";
echo "我们一样!!!";
}
if (md5(123)!=md5(321))
{
echo "rn";
echo "我们不一样!!!";
}
运行结果:
0e545993274517709034328855841020
0e462097431906509019562988736854
我们一样!!!
我们不一样!!!
三、CTF实例演示:请提供符合条件的用户名和密码
$flag='已满足报名条件!!!';
if ($_GET['name']!=$_GET['pwd']){
if (md5($_GET['name'])==md5($_GET['pwd'])){
echo $flag;
}
}
运行结果:
四、解析说明:
PHP在处理哈希字符串时,会利用”!=”或”==”来对哈希值进行比较,它把每一个以“0E”开头的哈希值都解释为0,如果两个不同的值经过哈希以后,都是0E开头,那么PHP将会认为他们相同。
好书推荐
《C++码农日记(全程视频讲解)》共9章。第1章讲述程序员入职前的准备以及C++跨平台开发入门知识,着重介绍求职面试相关知识,以及Qt的安装配置、开发环境搭建、第三方跨平台库基础知识、配套资源等内容;第2~8章通过50多个实际案例讲述命令行程序的开发、DLL(动态链接库)的开发与第三方库的使用、跨平台文件操作、多线程和进程内(多线程间)通信、进程间通信、异步串口通信、数据库访问等常用开发技能;第9章通过一个数据中心的案例介绍C/S模式(Client/Server模式,客户端/服务器模式)软件的综合开发技能。本书提供的案例覆盖了C/S模式软件开发工作的常见场景。《C++码农日记(全程视频讲解)》侧重无界面程序的开发,倡导的理念是系统全面、贴近实战。《C++码农日记(全程视频讲解)》可作为计算机软件类专业本科生或研究生、C++软件工程师、C++编程爱好者的参考资料。
禁止非法,后果自负
欢迎关注公众号:web安全工具库
欢迎关注视频号:之乎者也吧
加我微信(ivu123ivu),发送本篇文章的‘点赞’‘在看’的截图,
获取送书福利,仅当天有效。
原文始发于微信公众号(web安全工具库):CTF竞赛中“=”、“==”和“===”实例解析
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论