ctf php弱类型md5,【CTF-PHP】PHP弱类型

频道:新闻中心 日期: 浏览:9

以一道CTF题目引入对php弱类型的说明:

题目Writeup:

打开题目,提示输入密码

aec70a6cd1c8cf34cca43b335c2e055e.png

网页源码

注意到“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源码:

1134b50d1c9a62314d5b525b438f612b.png

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。

网友留言(0)

评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。