文件包含——概念(一)

本章目的

普及文件包含漏洞的原理以及常规文件包含漏洞

基础概念

文件包含

原理
文件包含漏洞产生的原因是在通过PHP函数引入文件时,由于传入的文件名没有经过合理的校验,从而操作了预想之外的文件,就可能导致意外的文件泄露甚至恶意的代码注入。几乎所有的脚本语言都会提供文件包含的功能,但文件包含漏洞在PHPWebApplication中居多,而在JSP、ASP、ASP.NET程序中却非常少,这是有些语言设计的醉端。在PHP中经常出现文件包含漏洞,但并不意味着其他语言不存在。

利用条件
(1)include等函数通过动态执行变量的方式引入需要包含的文件
(2)用户能控制该动态变量

PHP文件包含

文件包含函数

include():找不到被包含文件时会产生警告(E_WARNING);

include_once():与include()类似,代码已经被包含则不会再次包含

require():找不到被包含的文件时会产生致命错误(E COMPILE ERROR)

require_once():与require()类似,代码已经被包含则不会再次包含

文件包含分类

文件包含漏洞可以分为LFI(Local File Inclusion,本地文件包含)和RFI(Remote File Inclusion,远程文件包含)两种。而区分二者最简单的办法就是通过查看php.ini中是否开启了allow_url _include。如果开启就有可能包含远程文件。远程文件包含需要php.iniallow_url_include=on,allow_url_fopen=On。在php.ini中,allow_url_fopen默认一直是On,

而allow_url_include从php5.2之后就默认为Off。

文件包含漏洞利用

读取敏感文件(win)

http://127.0.0.1/include/03/index.php?page=C:\windows-version.txt

Vindows系统敏感信息:

C:\boot.ini

/查看系统版本

C:\windows\system32\inetsrv\MetaBase.xml

/IS配置文件

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配置信息

Linux系统敏感信息:

/etc/passwd

/linux用户信息

/usr/local/app/apache2/conf/httpd.conf

/apache2配置文件

/usr/local/app/php5/lib/php.ini

/php配置文件

/etc/httpd/conf/httpd.conf

/apache配置文件

/etc/my.cnf

/Mysql配置文件

包含日志文件
找到Apache路径,利用包含漏洞包含日志文件获取Webshell。
Apache两个日志文件:access.log、error.log
很多时候,web服务器会将请求写入到日志文件中,比如说apache。在用户发起请求时,会
将请求写入access.log,当发生错误时将错误写入error.log。

日志默认路径

Apache

/etc/httpd/logs/access_log/或var/log/httpd/access log

Apache+Windows日志默认路径

XAMPP套件:xampp\apache\logs/access.log

phpStudy套件:phpStudy\Apache\logs/access.log

日志默认路径

IIS

C:WINDOWS\system32\Logfiles

IS7默认日志文件位置

%SystemDrive%\inetpub\logs\LogFiles

Nginx

nginx日志文件在用户安装目录的logs目录下如安装目录为/usr/local/nginx,则日志目录就是在/usr/local/nginx/Iogs里也可通过其配置文件nginx.conf,获取到日志的存在路径(/opt/nginx/logs/access.log)

session简介:cookie存在客户端,session存在服务端,cookie一般用来保存用户的账户密码,session一般用来跟踪会话。
利用场景;
一般存在登陆点位置注册用户

使用PHP封装伪协议
PHP有很多内置URL风格的封装协议,这类协议与fopen()、copy()、file_exists()和filesize()的文件系统函数所提供的功能类似。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值