buu做题(7)

[BJDCTF2020]Mark loves cat

开始的界面没啥东西, 看了下源码好像也没啥东西
用dirsearch扫描一下
有git 泄露
用工具githack下载源码
 

<?php

include 'flag.php';

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

foreach($_POST as $x => $y){
    $$x = $y;
}

foreach($_GET as $x => $y){
    $$x = $$y;
}

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)
 

foreach($_GET as $x => $y){
    if($_GET['flag'] === $x && $x !== 'flag'){
        exit($handsome);
    }
}

看起来这是矛盾的, 但是可以传两个参数 , 一个是flag 一个是handsome
?handsome=flag&flag=handsome

经过一次get的变量覆盖
$handsome=$flag
$flag=$flag

然后进入到判断那里面
开始进入遍历 $_GET
第一个 $x --> handsome
可以满足 $_GET['flag']==$x 而且 $x==handsome 也满足  !==flag
然后 exit($handsome) 输出 $handsome , 经过前面的GET的变量覆盖
$handsome=$flag  , 所以就可以输出flag的值了

当然也可以构造出其他的, 利用后面的  exit($yds); exit($is);
来输出flag

?yds=flag

或者
?is=flag&flag=flag

[BJDCTF2020]Cookie is so stable

题目很明显的提示了 Cookie有问题

多尝试几遍, 可以发现无论输入什么都会登进去

所以应该不会是sql注入啥的
而且这个 形式感觉挺像 ssti注入的
尝试一下 {{3*3}}

也确实能够执行 输出 9
当然前面提示说看 cookie
登录后就会发现 cookie多出一行 user ,  他的值经过url解码就会发现就是我们输入的东西

直接修改里面的值 , 相应的内容也会变化

需要注意到这个ssti注入是php, 而不是python的

抓个包, 也可以看到

修改里面的user的值
通用的payload就可以打出来

https://www.cnblogs.com/bmjoker/p/13508538.html

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 02:38:02       106 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 02:38:02       116 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 02:38:02       95 阅读
  4. Python语言-面向对象

    2024-07-22 02:38:02       103 阅读

热门阅读

  1. 半监督学习 原理与代码实例讲解

    2024-07-22 02:38:02       27 阅读
  2. 初学Mybatis之 CRUD 增删改查

    2024-07-22 02:38:02       24 阅读
  3. TensorFlow 的基本概念和使用场景

    2024-07-22 02:38:02       30 阅读
  4. Windows图形界面(GUI)-DLG-C/C++ - 列表视图(ListView)

    2024-07-22 02:38:02       30 阅读
  5. 大规模语言模型从理论到实践 高效模型微调

    2024-07-22 02:38:02       27 阅读
  6. [11 Qt CMake开发]

    2024-07-22 02:38:02       29 阅读
  7. 显示隐式-》初始化 & 类型转换

    2024-07-22 02:38:02       27 阅读
  8. ReentrantLock源码

    2024-07-22 02:38:02       27 阅读
  9. 向量数据库Milvus

    2024-07-22 02:38:02       32 阅读
  10. 在 ASP.NET Core Web API 中实现审计跟踪

    2024-07-22 02:38:02       23 阅读
  11. leetcode-56. 合并区间

    2024-07-22 02:38:02       26 阅读
  12. 后端开发: 如何去使用公共组件

    2024-07-22 02:38:02       25 阅读
  13. 初步认识css(1)

    2024-07-22 02:38:02       26 阅读