首页 > 其他分享 >md5绕过

md5绕过

时间:2024-04-27 11:55:06浏览次数:25  
标签:GET && 0e POST 绕过 md5

md5绕过

($a != $b && md5($a) == md5($b))的绕过

传参a=s1885207154a,b=s1836677006a

image-20240425220419986

image-20240425220629684

MD5值:

md5("s1885207154a") => 0e509367213418206700842008763514

md5("s1836677006a") => 0e481036490867661113260034900752

在PHP中 0e开头表示为科学计数法 0e后面的字母 会被当作零处理

双md5碰撞绕过

if ($a != $b && md5($a) == md5(md5($b))

使md5($a)==md5(md5($b))的值为0e,只要使md5($b)的值也为0e,就绕过

找一个 值为0e开头,md5值也为0e开头的

md5("V5VDSHva7fjyJoJ33IQl") => 0e18bb6e1d5c2e19b63898aeed6b37ea

image-20240425221947566

image-20240425222153427

a=s1885207154a,b=V5VDSHva7fjyJoJ33IQl即可绕过if判断

双md5结果仍为0e开头字符串

MD5和双MD5以后的值都是0e开头的

CbDLytmyGm2xQyaLNhWn
770hQgrBOjrcqftrlaZk
7r4lGXCH2Ksu2JNT3BYM

字符串的MD5值为0e开头

QLTHNDT
QNKCDZO
PJNPDWY
NWWKITQ
NOOPCJF 
MMHUWUV
MAUXXQC
240610708
s878926199a
s155964671a
s214587387a

md5弱类型比较

if (md5($_GET['a']) == md5($__GET['b']))

同理0e绕过

md5强类型比较

if(md5((string)$_GET['a'])===md5((string)$__GET['b']))

可以利用数组绕过

var_dump(md5([1,2,3])==md5([4,5,6]));


var_dump(md5($_GET['a'])==md5($_GET['b']));


?a[]=1&b[]

md5中需要的是一个string参数,但是当你传入一个array(数组)是,md5()是不会报错的,只是无法求出array的md5的值,这样就会导致任意的2个array的md5的值都会相等

例题 ezPHP

源码

<?php
include "flag.php";
highlight_file(__FILE__);
error_reporting(0);

$a = 'O.U.C';

$query = $_SERVER['QUERY_STRING'];
parse_str($query);
if (preg_match('/_|%5f|\.|%2E/i',$query)){
    die('听说你是黑客');
}

echo '你知道b等于什么能绕过这个弱类型吗(〃` 3′〃)'.'<br>';
if (md5($a)==md5($_GET['b'])&&$a!=$_GET['b']){
    echo "哎呦,不错喔".'<br>';
    $O_U_C=$_GET['O_U_C'];
    if (!is_array($O_U_C)&&$O_U_C!=='100'&&preg_match('/^100$/',$O_U_C)){
        echo 'but'.'如果我寄出===阁下又该如何应对๑乛◡乛๑'.'<br>';
        if (md5($_POST['md51'])===md5($_POST['md52'])&&$_POST['md51']!=$_POST['md52']){
            echo '好,那么好'.'<br>';
            if ($_COOKIE["md5"]===md5($secret.urldecode($_GET['md5']))){
                echo '还是被你解出来了'.' ྀི ྀིɞ ྀི ིྀ ིྀ'.$flag;
            }else{
                echo '告诉你secret的md5值也无妨,反正哈希是不可逆的๑乛◡乛๑,除非你能箨斩攻击我'.md5($secret.'ouc').'<br>';
            }
        }else{
            echo '不过如此';
        }
    }else{
        die("不行嘛(´ェ`)");
    }
}else{
    echo '嗨害嗨  (๑ᵒ̴̶̷͈᷄ᗨᵒ̴̶̷͈᷅)';
}
你知道b等于什么能绕过这个弱类型吗(〃` 3′〃)
嗨害嗨 (๑ᵒ̴̶̷͈᷄ᗨᵒ̴̶̷͈᷅)

(md5($a)==md5($_GET['b'])&&$a!=$_GET['b']){

数组绕过 ?a[]=0&b[]=3

if (!is_array($O_U_C)&&$O_U_C!=='100'&&preg_match('/^100$/',$O_U_C))

要求 变量 O_U_G不是数组 并且满足 $O_U_G与字符串100 在值和类型上都不相等

if (preg_match('/_|%5f|.|%2E/i',$query))

image-20240427094110521

preg_match函数匹配了 _.以及 %5f%2E

使用空格 在php中 空格会被特殊解析成下划线

?a[]=0&b[]=4&O U C=100%0a

image-20240427112537642

if (md5($_POST['md51'])===md5($_POST['md52'])&&$_POST['md51']!=$_POST['md52'])

该比较为强比较 不能使用0e绕过 此时0e不再被当作科学计数法 0e后面的东西不在记为0处理

md51[]=1&md52[]=2

image-20240427112621355

if ($_COOKIE["md5"]===md5($secret.urldecode($_GET['md5']))){

传入cookie的值为md5 使其等于 secret传入的md5的md5值相等

image-20240427114535593

image-20240427114608230

secter和传入的md5拼接的值的md5已给出

image-20240427114708232

image-20240427114817202

因为有拼接的存在 md5=ouc

image-20240427115001473

image-20240427115106052

标签:GET,&&,0e,POST,绕过,md5
From: https://www.cnblogs.com/Yolololo/p/18161894

相关文章

  • md5绕过
    md5绕过($a!=$b&&md5($a)==md5($b))的绕过传参a=s1885207154a,b=s1836677006aMD5值:md5("s1885207154a")=>0e509367213418206700842008763514md5("s1836677006a")=>0e481036490867661113260034900752在PHP中0e开头表示为科学计数法0e后面的......
  • 在windows的CMD中计算MD5
    在Windows10的命令提示符(CMD)中,可以使用certutil命令来计算文件的MD5值。certutil-hashfileC:\BuildVersion.txtMD5......
  • 选 uuid 还是 md5?
    md5我对md5的选用的场景是,接口约定的字段,接收时不能有特殊字符,且服务端无法提供相应的唯一标识符,但能提供某些特定内容,这时候前端可以根据返回的某些特定的内容进行md5转化处理,既保证不会包含特殊字符,又能起到唯一标识的作用。但md5是不可解码的,这样就导致内容不可读性,特......
  • 反序列化死亡exit绕过
    又做了一个反序列化,发现一个知识点。[羊城杯2020]easyser点击查看代码<?phperror_reporting(0);if($_SERVER['REMOTE_ADDR']=="127.0.0.1"){highlight_file(__FILE__);}$flag='{Trump_:"fake_news!"}';classGWHT{public$hero;......
  • 第27天:安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞 - Shortcut
     https://www.kancloud.cn/manual/thinkphp5_1/354000ThinkPHP-Vuln-master ......
  • 深入理解MD5:Message Digest Algorithm 5
    title:深入理解MD5:MessageDigestAlgorithm5date:2024/4/2118:10:18updated:2024/4/2118:10:18tags:MD5哈希函数密码学数据完整性碰撞攻击安全性替代算法导论MD5的背景和历史MD5(MessageDigestAlgorithm5)是一种广泛使用的哈希函数,用于产生128位(16字节)......
  • 新手大白话 [HNCTF 2022 Week1]Challenge__rce RCE自增绕过
    今天遇到个RCE难题,挺另类的,这里做个复盘。进入题目直接给出了源码,可以发现就是个无字母RCE,且有长度限制不能使用url取反绕过,到这想到了以前的一个rce自增绕过方式,但是以前的没有长度限制。点击查看代码<?phperror_reporting(0);if(isset($_GET['hint'])){highlight_f......
  • 使用代理绕过网站的反爬机制
    最近在尝试收集一些网络指标的数据,所以,我又开始做爬虫了。:)我们在做爬虫的过程中经常会遇到这样的情况,最初爬虫正常运行,正常抓取数据,一切看起来都是那么的美好,然而一杯茶的功夫可能就会出现错误,比如403Forbidden,这时候打开网页一看,可能会看到“您的IP访问频率太高”这......
  • MD5哈希长度延展攻击
    MD5哈希长度延展攻击原理已知原始消息(m)和其对应的哈希值(h)。选择额外数据(m’)。计算填充,使得填充后的消息长度满足长度模512等于448,并包含新消息的长度信息。构造新消息(m+\text{填充}+m’)。计算新消息的哈希值(h’)。代码importhas......
  • md5强比较绕过
    p1=ten%0D%0A%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%EF%E4%B5h%A7y%95C%60%8A%E0a%0B%B8%3D%D8%26%F5%A3%13%8F%3F%7D%D4%5......