[SWPUCTF 2021 新生赛]easy_md5

借鉴博客

[SWPUCTF 2021 新生赛]easy_md5_青少年ctf easymd5-CSDN博客

我们直接看见源码

php 复制代码
<?php 
 highlight_file(__FILE__);
 include 'flag2.php';
 
if (isset($_GET['name']) && isset($_POST['password'])){
    $name = $_GET['name'];
    $password = $_POST['password'];
    if ($name != $password && md5($name) == md5($password)){
        echo $flag;
    }
    else {
        echo "wrong!";
    }
 
}
else {
    echo 'wrong!';
}
?> 

就是一个很简单的相等

然后php的弱比较

PHP两种比较:

a.'=='弱类型比较:

'123'=='123'---->true

'123'=='123abc....'---->true

注:只取字符串开头整数部分,特别注意*e*(科学计数法)开头的字符串取科学计数法的数值,如:

'1e3'=='1e3' ---->true

'1e3ctf'=='1e3ctf' ---->true

'1e3'=='1e4' ---->false

'1e3ctf'=='1e4ctf' ---->false

知道了这个是若比较,并且是md5

我们有两方式

1.数组绕过

原理:PHP md5函数接收的参数为string(字符串型),如果传入arry(数组型)就无法计算其md5值,但不会报错,导致数组md5值都相等.

两个null 肯定相等

2弱比较

PHP在进行"=="(弱类型比较)时,会先转换字符串类型,再进行字符串比较,而进行md5后以0e开头的都会被PHP识别为科学计数法,即0e*被视作0的*次方,结果都为0,故我们只需找到md5后为0e*的字符串,常用md5后为0e*的有:

240610708 0e462097431906509019562988736854

QLTHNDT 0e405967825401955372549139051580

QNKCDZO 0e830400451993494058024219903391

PJNPDWY 0e291529052894702774557631701704

NWWKITQ 0e763082070976038347657360817689

NOOPCJF 0e818888003657176127862245791911

MMHUWUV 0e701732711630150438129209816536

MAUXXQC 0e478478466848439040434801845361

相关推荐
酿情师1 天前
2026平航杯倩倩手机逆向包逆向全过程(逆向鸿蒙系统app包)
华为·智能手机·harmonyos·逆向·ctf·re·取证
其实防守也摸鱼1 天前
ctfshow--Crypto(crypto1-14)解题步骤
java·开发语言·网络·安全·密码学·ctf·ctfshow
Chen--Xing2 天前
NSSCTF -- [tangcuxiaojkuai] -- easy_factor
ctf·writeup·nssctf·crypto
Chen--Xing3 天前
NSSCTF -- [tangcuxiaojkuai] -- easy_mod
ctf·writeup·crypto
其实防守也摸鱼4 天前
CTF密码学综合教学指南--第九章
开发语言·网络·python·安全·网络安全·密码学·ctf
蒲公英eric5 天前
攻防世界 misc题GFSJ0963-【pcap1】
ctf·misc·流量分析·攻防世界
其实防守也摸鱼7 天前
CTF密码学综合教学指南--第四章
网络·笔记·安全·网络安全·密码学·ctf
其实防守也摸鱼8 天前
CTF密码学综合教学指南--第一章
网络·安全·网络安全·密码学·ctf·法律
其实防守也摸鱼8 天前
CTF密码学综合教学指南--第二章
开发语言·网络·python·安全·网络安全·密码学·ctf
其实防守也摸鱼13 天前
ctfshow--VIP题目限免2(后10个) 原理和知识拓展
网络·ctf·讲解·原理·知识·ctfshow·解题