bugku
cookies 题目链接
打开题目页面显示一串乱码,F12以后啥也没有,看见地址栏的东西引起很大的*趣,这这这 $ filename不是base64加密吗(=,它就是base64加密的特征)!!!
在线解码后为keys.txt,$ line什么参数也没有,传入1,2。。。之后页面空白。。。mmp
直接查看index.php吧(注:因为index.php同keys.txt一样要先base64加密),这时再传入$line,传入参数不一样,页面就显示不一样的代码,但可以看出传入x就显示第x行的代码,反手掏出python写脚本吧!!!(脚本和结果如下图)
好了得到了index.php代码先分析一下吧
<?php
error_reporting(0);//屏蔽错误信息
$file=base64_decode(isset($_GET['filename'])?$_GET['filename']:"");//将filename参数base64解密,没有值就设为空
$line=isset($_GET['line'])?intval($_GET['line']):0;//intval函数:强制类型转换,转换为整型;
if($file=='') header("location:index.php?line=&filename=a2V5cy50eHQ=");//如果file为空,就显示header()
$file_list = array(
'0' =>'keys.txt',
'1' =>'index.php',
);//设置file_list数组
if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
$file_list[2]='keys.php';
}//如果COOKIE['margin']存在且等于‘margin’,则将keys.php加入file_list数组中
if(in_array($file, $file_list)){
$fa = file($file);
echo $fa[$line];
}//如果$file在file_list数组中就显示$file的第line行
?>
代码分析完就确定了$ filenamem和$ line的作用了,flag应该就在$ keys.php中,所以$ filename=a2V5cy5waHA=,$ line的作用正如我上文猜想的,剩下就简单了,掏出神器burp,抓包,送包搞定!
最后作为小白送上为啥要直接查看index.php的原因:
1,index.php是一个用PHP语言开发的网站的首页,index是普遍意义上的“首页”,所以你不得看看这么重要的东西???(其实它相当于c语言里面的主函数,什么事情最终都在它那完成)
2,问问你为啥啥web题你都要摁F12,,,,一样的道理嘛