文件操作漏洞之文件包含(六)

第一部分:文件包含

1.文件包含基本概念

开发人员都希望代码更加灵活,所以通常会将被包含的文件设置为变量,用来进行动态调用。正是这种灵活性,从而导致客户端可以调用一个恶意文件,造成文件包含漏洞。文件包含分本地包含和远程包含.

典型特征
变量的值为一个页面:
?page=a.php
?home=b.html
?file=content…

2.文件包含漏洞利用的前提条件
(1)web 应用采用 include 等文件包含函数,并且需要包含的文件路径是通过用户传输参
数的方式引入;
(2)用户能够控制包含文件的参数,被包含的文件可被当前页面访问;

常见的导致文件包含的函数:

PHP:include()、include_once()、require()、require_once()等;
1.php文件包含可以直接执行包含文件的代码,包含的文件格式不受任何限制
在 php 中提供了四个文件包含函数:
(1) Require: 找不到被包含的文件时会产生致命错误(E_COMPILE_ERROR),并停止脚本;
(2) Include:找不到被包含的文件时只会产生一个(E_warinng),脚本将继续执行;
(3) Require_once:与 include 类似会产生警告,区别是如果文件代码已经被包含,则不会再
次被包含;

3.文件包含获取 webshell 的条件:
(1)攻击者需要知道文件存放的物理路径;
(2)对上传文件所在目录拥有可执行权限;
(3)存在文件包含漏洞;

一.本地包含

1.无限制

同级访问:http://127.0.0.1/include.php?filename=1.txt

跨级访问:http://127.0.0.1/include.php?filename=../../../www.txt

2.有限制

绕过思路:

一、%00截断(条件:magic_quotes_gpc = off  ,php版本<5.3.4>)

例如:1.txt%00

原理:将后面的.html给截断

二、长度截断:(条件:windows,点号需要长于256,linux长于4096)

例如:

1.txt/./././././././././././././././././././././././././././././././././././././././././././././././././././././././.

/././././././././././././././././././././././././././././././././././././././././././././././././././././././././././.

三、点绕过

1.txt................................................................................................................

原理:(其他符号也可以)只要超过了256个,那么限制后面的html就无法加入了,

且系统会将后面的符号进行自动删除。

第二部分:远程包含

绕过方法

http://127.0.0.1/include.php?filename=1.txt%20

http://127.0.0.1/include.php?filename=1.txt%23

http://127.0.0.1/include.php?filename=1.txt?

等等... ...

常见的敏感路径:
1 Windows
C:\boot.ini //查看系统版本
C:\windows\system32\inetsrv\MetaBase.xml //IIS 配置文件
C:\windows\repair\sam //存储 windows 系统初次安装的密码
C:\Program Files\mysql\my.ini //mysql 配置
C:\Program Files\mysql\data\mysql\user.MYD //Mysql root
C:\windows\php.ini //php 配置信息
C:\windows\my.ini //mysql 配置文件

2 UNIX/Linux
/etc/passwd
/usr/local/app/apache2/conf/httpd.conf //apache2 默认配置文件
/usr/local/app/apache2/conf/extra/httpd-vhosts.conf //虚拟网站设置
/usr/local/app/php5/lib/php.ini //PHP 相关配置
/etc/httpd/conf/httpd.conf //apache
/etc/php5/apache2/php.ini //ubuntu 系统的默认路径

文章部分转载,原文链接:https://blog.csdn.net/qq_39431542/article/details/88628225

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值