这是一道CTF中常见的题目,我们来看一下题目描述(其实ctf中题目描述很多都是没用的,甚至还会误导我们)

题目描述先让我们找密码:

打开这个页面,似乎并没用什么东西出现。根据经验我们要看一下源码有没有东西!

右键查看源码:发现有个注释掉的index.txt

我们来看一下index.txt,果真提示性代码出来了。

isset($_GET['password'])//满足passwd不为null

strcmp($_GET['password'], $flag) == 0//password和flag相等

其实这么多就这两行有用(让我想到了开发最后就是再写if/else),看到上面我注释好的passwd满足的条件了把,password不为null且password和flag字符串相同?

第一个不为null很好满足,那第二个条件呢?看似strcmp函数对比两个字符串相同则返回0否侧返回正数或者负数,但是很明显我们要是知道flag我们还做它干啥,这里一定要看清和0对比是用的==而不是===,这就是php的魅力,===是要类型,内容相等,而==只要内容相等即可。

什么是内容相等呢,false和0是相等的,那这里我们想strcmp函数中什么时候会返回false呢,只有当对比的两个对象不是同一类型时会返回false。

这里我们就想flag肯定是字符串,那我们让password为数组的情况下肯定返回为false了。

构造如下:

flag就出来了!

虽然这是一个CTF题目,但是php开发的小伙伴一定要注意再strcmp和==同时使用时的特点,避免留下漏洞被利用。

php中双等与三等,利用php中双等于和三等于的区别,无需密码拿到flag相关推荐

  1. 利用 Matlab Simulink 平台搭建双馈风力发电机在电网中的模型

    利用 Matlab Simulink 平台搭建双馈风力发电机在电网中的模型,双馈风力发电机在风速变化的影响下转矩.电流.电压等参数波形变化. 适用于风电并网时对风电场影响的研究. 详情请见文档. ID ...

  2. 利用 Matlab/Simulink 平台搭建双馈风力发电机在电网中的模型,双馈风力发电机在风速变化的影响下转矩、电流、电压等参数波形变化

    利用 Matlab/Simulink 平台搭建双馈风力发电机在电网中的模型,双馈风力发电机在风速变化的影响下转矩.电流.电压等参数波形变化. 适用于风电并网时对风电场影响的研究. 详情请见文档. ID ...

  3. 逐向双碳:东数西算中的绿色需求与竞争焦点

    如果盘点2022年上半年科技圈最火热的风口,东数西算绝对榜上有名.2022开年,国家发改委.工信部等四部委就确定了"东数西算"工程的建设.在京津冀.长三角.粤港澳大湾区等八地,建立 ...

  4. 不等距双杆模型_对磁场中双杆模型问题的解析(精)

    - 1 - 1 对磁场中双杆模型问题的解析 南京市秦淮中学 汪忠兵 研究两根平行导体杆沿导轨垂直磁场方向运动是力电知识综合运用问题, 是电磁感应部 分的非常典型的习题类型,因处理这类问题涉及到力学和电 ...

  5. java中三个等号_Java细节:单等于号、双等于号、三等于号的作用及双等于号和equls的区别...

    我们在编程时总是会用到=或==,但是等于号都有什么作用呢?下面我们来看一下 (注:下文会提及一点常量池.堆栈,由于本人了解还不是透彻,暂不做解释,日后会做总结,可先点击字面查看理解) 一.单等于号的作 ...

  6. Java细节:单等于号、双等于号、三等于号(js中才有)的作用及双等于号和equals(源码)的区别

    我们在编程时总是会用到=或==,但是等于号都有什么作用呢?下面我们来看一下 (注:下文会提及一点常量池.堆栈,由于本人了解还不是透彻,暂不做解释,日后会做总结,可先点击字面查看理解) 一.单等于号的作 ...

  7. 1.已知本原多项式,利用Matlb中的simulink构成m序列产生器。2.已知任意本原多项式,利用matlb软件编程求解其对应的m序列以及m序列产生过程。

    1. 已知本原多项式,利用Matlb中的simulink构成m序列产生器.2.已知任意本原多项式,利用matlb软件编程求解其对应的m序列以及m序列产生过程. m序列是最长线性反馈移位寄存器的简称,他 ...

  8. 怎么安装winubuntu双系统_win7系统电脑怎么利用ubuntu安装双系统,win7电脑安装双系统的方法...

    ‍ win7系统用户想自己装双系统,但是不了解具体哪种安装方法比较安全快捷,其实我们可以利用ubuntu来安装,那么win7系统电脑怎么利用ubuntu安装双系统?且看以下的设置步骤. ‍ 一.软件准 ...

  9. matplotlib: 双Y轴、同一坐标轴中不同类型图、设置坐标轴刻度格式

    pandas的plot函数已经可以满足很多的基本作图需求,但是其有一个比较明显缺点是不能一次性的在同一个坐标轴中画不同类型的图,比如折线图和柱状图,而且也不能设置坐标轴刻度的格式.当然这两个需求在ma ...

最新文章

  1. Spring事务管理3----声明式事务管理(1)
  2. 71 说出常用的类、包、接口各5个
  3. HTML cellpadding与cellspacing属性
  4. [codevs 1911] 孤岛营救问题
  5. C++中map的使用
  6. php m pi 2,PHP学习(2)
  7. 对口升学计算机组装与维护,对口升学信息技术(计算机)类2017年专业课考试大纲...
  8. Navicat for MySQL数据库管理工具
  9. java short uuid_MySQL-使用UUID_SHORT( ) 的问题
  10. 更新更新,小白学面向对象方法,研一课程,附带补充C++知识
  11. SQL Server误区30日谈-Day25-有关填充因子的误区
  12. 超低延时超低卡顿率视频传输的秘密
  13. C#选择文件的对话框和选择文件夹的对话框
  14. ADV-234-字符串跳步
  15. 初中生用计算机作弊,初中生,总是偷偷用手机作弊,好想哭怎么办?
  16. 条件概率和全概率公式
  17. 更改计算机浏览视图,来,一起认识查看、编辑幻灯片时不同的视图方式—想象力电脑应用...
  18. 内部邮件管理的数据库设计和dwz的批量处理
  19. Blockchain for Internet of Energy management: Review, solutions, and challenges
  20. Oracle 查看表中重复的记录,以及去除表中的重复记录

热门文章

  1. 我的世界服务器经常未响应是怎么回事,【电子世界】电脑经常出现“未响应”,该怎么办?...
  2. java 左右两边数据类型不一样_java基础语法
  3. 虚拟机禅道服务器ip,Linux系统(虚拟机)安装禅道
  4. Java招聘数据统计_拉勾网2019年3月20日招聘数据统计
  5. ssh协议是osi_你见过这份864页神仙级的TCP/IP协议吗?,太香了!
  6. iphone分辨率_QHD 分辨率有必要吗?三个理由告诉你:手机屏幕 FHD 就很好
  7. Idea springboot应用,启动报错:org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcept
  8. 将米转换为度(经纬度) 画圆上下多出来一些区域
  9. linux下源码安装log4cxx
  10. BYOD提升企业生产力的5种方式