• cookies欺骗-bugkuctf


     解题思路:

    打开链接是一串没有意义的字符串,查看源码没有发现什么,然后查看url,发现 filename的值是base64编码的,拿去解码

     发现是一个文件,那么我们这里应该可以读取当前目录下的本地文件,那么我门用同样的方法,将index.php base64编码后拿去请求,最初发现是空白;

    但是我门的line参数还没有使用,它应该是控制显示的行数的,这里改为1

     然后由将line改为2

     发现读取成功,然后写一个python脚本,将每一行豆读出来,然后复制到记事本中,整个代码为:

    <?php
    error_reporting(0);
    $file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");
    $line=isset($_GET['line'])?intval($_GET['line']):0;
    if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");
    $file_list = array(
    '0' =>'keys.txt',
    '1' =>'index.php',
    );
    if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){ 
    $file_list[2]='keys.php';
    }
    if(in_array($file, $file_list)){
    $fa = file($file);
    echo $fa[$line];
    }
    ?>

    前面不用看,看看第二个if语句,只要cookie值为:margin=margin即可,flag存在的文件应该的是keys.php文件,那么我们在浏览器上直接添加cookie:

     然后保存,我们将filename再改为keys.php的base64编码值,然后访问

    发现是空白页,试试查看源码,成功发现flag!

  • 相关阅读:
    android4.0 及以上 版本 wifi 和 蓝牙不显示 原因
    AWK命令使用 小结
    Linux xargs命令 小结
    nginx rewrite伪静态配置参数详细说明
    简评file_get_contents与curl 效率及稳定性
    zendstudio 常用快捷键
    PHP字符串三种定义方式
    PHP连贯接口
    yii学习笔记
    PHP中str_replace函数的详解
  • 原文地址:https://www.cnblogs.com/-chenxs/p/11658288.html
Copyright © 2020-2023  润新知