ctf php弱类型md5,【CTF-PHP】PHP弱类型
以一道CTF题目引入对php弱类型的说明:
题目Writeup:
打开题目,提示输入密码
网页源码
注意到“PHP为编程最优语言”
想起题目PHP-WEAK-TYPE
根据提示,应该是php弱类型绕过
先查看是不是存在php源码泄露
在地址http://120.24.215.80:10001/index.php~里检测到含有php程序代码
查看网址的底层代码:输入地址栏指令view-source,后面接上网址http://120.24.215.80:10001/index.php
看到了PHP源码:
PHP源码
必须输入MD5码与QNKCDZO的MD5码相同但不同于QNKCDZO的字符
PHP存在弱类型特性,字符串QNKCDZO的MD5散列值初始呈现为0e,比对时将其转换为科学计数法表示即为0
md5为0e开始的字符还有:
240610708
s878926199a
s155964671a
s214587387a
s214587387a
s878926199a
s1091221200a
s1885207154a
输入其中一个,得到flag:
Flag
PS1.0:关于PHP源码泄露:
网络地址中常见的几种PHP信息泄露形式包括以下几种后缀名:.php~、.index.php、.swp、.index.php.bak、.index.php.swo、.index.php.svn、.index.php.zip、.index.php.rar、.index.php.txt、.index.php.old
PS2.0:关于PHP弱类型
弱类型语言允许将字符看做多种类型,php就是一种弱类型语言
在php语言的==和===比较中
==:先把字符串类型变成相同,再进行比较
===:先判断字符串类型是否相同,再进行比较
字符串若被当作数值处理爱游戏ayx官网登录入口,若其中不含有小数点、指数符号,且数值落在整数允许的区间内爱游戏app入口官网首页,则该字符串按整数类型解析,否则统一按浮点数类型解析,并且字符串的前缀部分决定最终解析结果,前缀为数字字符时,解析结果为该数字字符所代表的数值,前缀非数字字符时,解析结果为0
在先前的问题里,若将QNKCDZO的md5值当作数值处理,其开头部分为0e,会按照科学计数法来解析,任何数的零次方都是零,因此,只需寻找到一个md5值,其开头也是0e即可,零和零是相等的爱游戏app官方入口最新版本,这样就能成功规避验证,从而获取Flag。