BUUCTF[ACTF2020 新生赛]Include 1题解

BUUCTF[ACTF2020 新生赛]Include 1题解

题目分析:

生成靶机,打开网址,查看源码,抓包查看有无隐藏信息(公式化)。

点击tips:

发现一段留言:Can you find out the flag?,同时我们观察url

p 复制代码
http://163da250-9a0d-4ec7-9002-49df5c87e38b.node5.buuoj.cn:81/?file=flag.php

结合题目标题以及url中的?file=flag.php,几乎就可以断定有文件包含漏洞了。

知识准备:

在开始解题之前,我们需要了解PHP伪协议的知识:

PHP伪协议通过替换数据报的头部信息来欺骗网络协议。

以下是关于 php://filter 参数的过滤器整理表格:

php://filter 过滤器参数说明

参数类型 过滤器名称 作用
必须项 resource=<要过滤的数据流> 指定待筛选过滤的数据流(必填)
可选项(读链) `read=<过滤器1 过滤器2>`
可选项(写链) `write=<过滤器1 过滤器2>`
默认链 `<过滤器1 过滤器2>`

常用过滤器功能对照表

过滤器类型 过滤器名称 作用
字符串过滤器 string.rot13 等同于 str_rot13(),进行 ROT13 字符变换
string.toupper 等同于 strtoupper(),将字符串转为大写
string.tolower 等同于 strtolower(),将字符串转为小写
string.strip_tags 等同于 strip_tags(),移除 HTML/PHP 标签
转换过滤器 convert.base64-encode 等同于 base64_encode(),进行 Base64 编码
convert.base64-decode 等同于 base64_decode(),进行 Base64 解码
convert.quoted-printable-encode 将 8-bit 字符串编码为 Quoted-Printable 格式(可打印字符)
convert.quoted-printable-decode 将 Quoted-Printable 格式解码为 8-bit 字符串

开始解题:

原理解析

后端代码大概可能是下面这样:

php 复制代码
include($_GET['file'])

如果我不使用PHP伪协议,读取flag.php之后,include()就会自动执行其中的PHP代码,这样就无法在网站前端阅读到完整的源码。但是如果我们使用php://filter,对文件中的命令进行一些处理,就可以获得完整的源码。

构造payload

p 复制代码
?file=php://filter/read=convert.base64-encode/resource=flag.php

payload中的每一个过滤器都能从上面的表格中找到,payload实现了把flag.php中的所有字符转换为BASE64编码,以逃脱include()执行php代码,获得完整源码

BASE64解码得到:

php 复制代码
<?php
echo "Can you find out the flag?";
//flag{5b7c82b0-4473-42a3-bb8c-068dcd50a1d0}

FLAG被注释掉了,但是通过PHP伪协议找到了。

总结

本题的提示还是非常明显的,没有绕弯,主要考察了CTFer对文件包含漏洞和PHP伪协议的理解,总的来说不是很难适合初学者(比如我)。

相关推荐
YGY Webgis糕手之路9 小时前
OpenLayers 快速入门(六)Interaction 对象
前端·vue.js·经验分享·笔记·web
uwvwko2 天前
使用docker(ubuntu)搭建web环境(php,apahce2)
ubuntu·docker·php·web·ctf·apache2
YGY Webgis糕手之路2 天前
WebGIS 常用坐标系
前端·经验分享·笔记·web
曲幽3 天前
解锁C#异步编程:async/await实战指南,告别卡顿烦恼
c#·web·async·file·await·download
O执O3 天前
JavaWeb笔记四
java·hive·hadoop·笔记·web
凌辰揽月3 天前
贴吧项目总结二
java·前端·css·css3·web
码农12138号3 天前
BUUCTF在线评测-练习场-WebCTF习题[BSidesCF 2020]Had a bad day1-flag获取、解析
web安全·网络安全·ctf·buuctf·文件包含漏洞
m1cr0wave5 天前
javaweb的几大常见漏洞
java·安全·web
uwvwko5 天前
安装kali时出现“安装步骤失败“如何解决及后续软件安装
linux·运维·服务器·安全·kali·ctf
OEC小胖胖6 天前
前端性能优化“核武器”:新一代图片格式(AVIF/WebP)与自动化优化流程实战
前端·javascript·性能优化·自动化·web