就可以造成扩展名截断
起来吃完早饭就开始刷攻防世界的题,一个简单的文件包罗题我竟然都做不出来我服了 拿出买的书开始从新学习总结文件包罗缝隙!
一、文件包罗缝隙
文件包罗缝隙
文件包罗函数的参数没有颠末过滤或者严格的界说,并且参数可以被用户控制,这样就可能包罗非预期文件。如果文件中存在恶意代码,无论文件是什么类型,文件内的恶意代码城市被解析并执行。
文件包罗缝隙肯能会造成处事器网页被篡改、网站被挂马、处事器被长途控制、被安置后门等风险。
常见的文件包罗函数:
1.include() 包罗并运行制定文件。在堕落时孕育产生警告(E_WARNING),根基会继续运行。
2.include_once() 在脚本执行期间包罗并运行制定文件。与include区别:查抄是否被包罗过,如果是则不会再次包罗。
3.require()包罗并运行指定文件。require在堕落时孕育产生E_COMPLE_ERROR几倍错误,脚本中止运行
4.require_once() 根基完全与require不异 与require区别:查抄是否被包罗过,如果是则不会再次包罗。
缝隙示例代码:
<?php $filename = $_GET[‘filename‘]; include($filename); ?>
以上代码,对$_GET[‘filename’]参数没有颠末严格的过滤,直接带入了include()函数,打击者可以改削$_GET[‘filename’]的值,加载其他文件,执行非预期的操纵,由此造成了文件包罗缝隙;
我们在后面加上我们当前目录的文件1.txt 即可读取1.txt的内容显示出来
二、无限制本地文件包罗缝隙
无限制本地文件包罗缝隙
无限制本地文件包罗缝隙是指代码中没有为包罗文件制定特定前缀或者.php、.html等扩展名,因此打击者可以操作文件包罗缝隙读取操纵系统中的其他文件,获取敏感信息,或者执行其他文件中的代码。
常见的敏感信息路径
Windows
c:\boot.ini // 检察系统版本
c:\XX\httpd.conf Apache配置信息
c:\windows\system32\inetsrv\MetaBase.xml // IIS配置文件
c:\windows\repair\sam // 存储Windows系统首次安置的暗码
c:\ProgramFiles\mysql\my.ini // MySQL配置
c:\ProgramFiles\mysql\data\mysql\user.MYD // MySQL root暗码
c:\windows\php.ini // php 配置信息
Linux/Unix
/etc/passwd 账户信息
/etc/shadow 账户暗码文件
/etc/httpd/conf/httpd.conf Apache配置文件
/etc/my.conf mysql 配置文件
/usr/local/app/apache2/conf/httpd.conf Apache2默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhost.conf 虚拟网站配置
/usr/local/app/php5/lib/php.ini PHP相关配置
无限制本地文件包罗缝隙示例:
<?php $filename = $_GET[‘filename‘]; include($filename); ?>
操作缝隙读取Mysql配置信息
payload:
?filename=C:\phpStudy\PHPTutorial\MySQL\my.ini
操作无限制本地包罗缝隙执行代码
三、有限制本地文件包罗缝隙
简介:
有限制本地文件包罗缝隙是指代码中为包罗文件制定了特定的前缀或者.php、.html等扩展名,打击者需要绕过前缀或者扩展名过滤,才华操作文件包罗缝隙读取操纵系统中的其他文件,获取敏感信息。常见的有限制本地文件包罗过滤绕过的方法主要:有%00截断文件包罗、路径长度截断文件包罗、点号截断文件包罗这三种
测试代码:
<?php $filename = $_GET[‘filename‘]; include($filename,".html"); ?>
1.%00截断
%00会被认为是结束符,,后面的数据会被直接忽略,导致扩展名截断。打击者可以操作这个缝隙绕过扩展名过滤
缝隙操作条件:
(1) magic_quotes_gpc=off
(2) PHP<5.3.4
测试功效;
Payload: ?filename=xiaohua.txt%00
通过%00截断了后面的.html扩展名过滤,告成读取了xiaohua.txt文件的内容
2.路径长度截断文件包罗
操纵系统存在最大路径长度的限制。可以输入赶过最大路径长度的目录,这样系统就会将后面的路径抛弃,导致扩展名截断
缝隙操作条件
Windows下目录的最大路径256B
Linux下目录的最大路径长度为4096B
测试payload:
温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31340.html
- 上一篇:可以把一些不展示给用户
- 下一篇:这是一段有趣的历史背景介绍