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!

 

posted @ 2019-10-12 08:31  ctrl_TT豆  阅读(747)  评论(0编辑  收藏  举报