自学内容网 自学内容网

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


原文地址:https://blog.csdn.net/2302_80472909/article/details/140593087

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!