美文网首页
关于PHP文件包含

关于PHP文件包含

作者: Aluvion | 来源:发表于2018-09-29 00:23 被阅读0次

菜鸡随笔

本地文件包含漏洞基础看这里:http://www.freebuf.com/column/148886.html

(其中phar是个很神奇的协议,能解析很多后缀名,例如

似乎是因为phar在解析时会自动寻找stub部分

相关wp https://www.jianshu.com/p/e6adc2fcc705

http://php.net/manual/en/phar.fileformat.phar.php


关于文件包含,之前说到过的session和日志就不提了,怎么控制服务端的文件使得我们能够包含get shell也有各种各样的姿势,这里提几个很神奇的操作

文件包含+phpinfo=getshell(需要条件竞争)

一张图片解释

众所周知,在Linux系统下,php会将上传的临时文件放在/tmp目录下,如果不进行移动保存,在php生命周期结束后就会将其删除,而且该临时文件名一般是php和6个随机字符组成的,所以我们一般难以利用

但是当我们给phpinfo页面上传文件的时候,该临时文件名的会出现在页面中,利用这个点进行条件竞争就有可能直接get shell

文件包含=getshell?(需要爆破且不太可行)

链接:https://www.anquanke.com/post/id/153376

利用自包含,使得php上传后的临时文件得以保留下来

实测在我的公网VPS上可行,但是在docker上不可行

不推荐

利用软链接进行文件读取

链接:https://xz.aliyun.com/t/2589


当然,一般来说文件包含都不会那么好用,能够直接get shell,我们利用这个漏洞一般都是使用php://filter伪协议来读取源码进行审计或者读取文件内容的

对于php://filter,官方解说见这里http://php.net/manual/zh/wrappers.php.php

不过说的有点散,就让我们自己潜下去看看php实现代码吧,主要代码如下:

前面关于读写mode的不提,我们从下面开始看,句式类似这样:

php://filter//resource=文件路径

后面调用了 php_stream_apply_filter_list 函数,这里传入了用resource的文件路径打开的文件流和过滤器,我们追过去看看:

这里将过滤器用|分割,然后URL解码一次,句式类似这样:

php://filter/ (url_decode(过滤器)) | (url_decode(过滤器)) /resource=文件路径

并依次创建过滤器实例

跟入 php_stream_filter_create

这里从已经注册好了的哈希表中查找过滤器工厂,如果查找不到就做一些处理再查找

那有什么过滤器呢?

在filters.c中,我所看到的过滤器主要有:

string.rot13

string.toupper

string.tolower

string.strip_tags

convert.base64-encode

convert.base64-decode

convert.quoted-printable-encode

convert.quoted-printable-decode

在实际中,可以使用这些过滤器对流进行编码/解码


Orz

相关文章

  • 关于PHP文件包含

    菜鸡随笔 本地文件包含漏洞基础看这里:http://www.freebuf.com/column/148886.h...

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

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

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

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

  • php文件包含

    原因:程序员写程序的时候,不喜欢干同样的事情,也不喜欢把同样的代码(比如一些公用的函数)写几次,于是就把需要公用的...

  • PHP文件包含

    LFI、RFI、PHP封装协议安全问题学习 本文希望分享一些本地文件包含、远程文件包含、PHP的封装协议(伪协议)...

  • [PHP] php执行顺序(include和require)

    php文件中不包含include(1)进行function的定义(2)从上到下执行php脚本 php文件中包含in...

  • PHP 基础知识总结

    PHP 代表 PHP: Hypertext Preprocessor PHP 文件可包含文本、HTML、JavaS...

  • php安全

    文件包含漏洞** 本地文件包含**能打开并包含本地文件的漏洞,被称为本地文件包含漏洞(LFI)%00截断,php内...

  • php文件包含漏洞

    php文件包含漏洞 相关函数 php中引发文件包含漏洞的通常是以下四个函数: 1、reuqire() 如果在包含的...

  • PHP入门

    PHP是服务器端脚本语言 PHP文件: PHP文件可包含文本,HTML,JavaScript代码和PHP代码 在服...

网友评论

      本文标题:关于PHP文件包含

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