2026-01-28
分类:服务器技术
阅读(30) 评论(0)
前言:
- 考点:文件包含,data伪协议
- Data伪协议 嵌入纯文本:data:,纯文本内容(当数据为纯文本且无需指定数据类型时,可省略「MIME 类型」和「编码」,直接用基础格式
- Data伪协议 嵌入可执行内容(指定[MIME类型]):data:[MIME],[可执行内容]
- Data伪协议 嵌入二进制数据(base64编码):data:[二进制MIME类型];base64,Base64编码后的数据
解题步骤:
- 1.进入靶场,是一段PHP代码,我们进行代码审计,大致说是要以GET方式得到变量$page的值,而且使用了循环语句,一旦识别到page值中存在php://,会将其改为空格,不断循环,直至不存在为止,简单理解为过滤掉了php://

- 2.过滤掉了php://,导致我们filter伪协议没办法使用,我们这时想到data伪协议,构造payload :data://text/plain,<?system(‘ls’)?> 输入运行得到

我们肯定对fl4gisisish3r.php感兴趣,访问它
- 3.修改执行命令,将ls改为cat fl3gisisish3r3.php,输入运行,flag在源码里,我们查看源码就可以得到
- 4.如果想直接得到flag,可以将可执行内容改为show_source(‘cat fl4gisisish3r3.php’) 这样就可以直接显示flag