文件包含漏洞

文件包含漏洞

产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶意代码注入
当包含文件在服务器本地上,就形成本地文件包含,当包含的文件在第三方服务器是,就形成可远程文件包含。

常见的漏洞代码

if (isset($_GET[page])) {
include $_GET[page];
} else {
include "home.PHP";
}
其中$_GET[page]使用户可以控制变量。如果没有严格的过滤就导致漏洞的出现

包含文件的函数

1.include()

2.include_once()

3.require()

4.require_once()

代码审计的时候,是否是变量,不过滤,过滤不严格,函数include/require

远程文件包含和本地文件包含的配置区别

本地文件包含php.ini配置文件中开启allow_url_include
远程文件包含与本地文件包含的区别(开启allow_url_include和allow_url——ftp on)
远程文件(包括本地文件包含)包含比本地文件包含的危害大

本地文件包含利用

  • 上传图片GETshell
  • 读取文件,读取php文件
  • 包含日志文件获取webshell
 1.首先找到文件存放位置
 有权限读取apache配置文件或是/etc/init.d/httpd
 默认位置/var/log/httpd/access_log

2.让日志文件插入php代码
发送url请求时后插入php代码,一般使用burp抓包修改
curl发包
插入到get请求,或是user-agent部分
3.包含日志文件(必须要权限包含)
  • 包含/proc/self/environ 文件webshell
  • phpinfo.php 可以包含临时文件(显示临时文件路径)写工具发包上传文件。查看返回信息路径。在使用include包含文件(速度要求快)
  • 包含data//或是php://input协议(伪协议,需要allow_url_include=On)
1.包含文件上传的图片
<?php
if ($_GET[page]) {
include($_GET[page]);
} else {
include "show.php";
} //利用page=/uploads/xxx.jpg
用户控制$_GET[page]里面内容 包含一个带有恶意代码的上传图片。getshell
(其中要找到上传图片的绝得路径)
2.包含文件上传的第二种
<?php
if ($_GET[page]) {
include("./action/".$_GET[page]);
} else {
include "./action/show.php";
} //利用page=../uploads/xxx.jpg 跳出当前目录
3.第三种包含上传
<?php
if ($_GET[page]) {
include("./action/".$_GET[page].".php");
} else {
include "./action/show.php";
} // 可以看出会在后面追加一个.php后缀 ../uploads/xxx.jpg%00截断后面的.php
需要开启(magic_quotes_gpc=off,php小于5.3.4)

windows环境下

IIS配置文件,查找日志路径

apache/nginx
集成环境
包含日志文件,查看是与否有权限读取文件(可以解析正常)。

事例

1.## 文件包含漏洞
产生的原因:通过引入文件时,用户可控,没有严格的检验,或是被绕过,操作一些敏感文件,导致文件泄露和恶意代码注入
当包含文件在服务器本地上,就形成本地文件包含,当包含的文件在第三方服务器是,就形成可远程文件包含。

常见的漏洞代码

if (isset($_GET[page])) {
include $_GET[page];
} else {
include "home.PHP";
}
其中$_GET[page]使用户可以控制变量。如果没有严格的过滤就导致漏洞的出现

包含文件的函数

1.include()

2.include_once()

3.require()

4.require_once()

代码审计的时候,是否是变量,不过滤,过滤不严格,函数include/require

> 远程文件包含和本地文件包含的配置区别

本地文件包含php.ini配置文件中开启allow_url_include
远程文件包含与本地文件包含的区别(开启allow_url_include和allow_url——ftp on)
远程文件(包括本地文件包含)包含比本地文件包含的危害大

#### windows环境下
IIS配置文件,查找日志路径

apache/nginx
集成环境
包含日志文件,查看是与否有权限读取文件(可以解析正常)。

#### 事例
1.
![](http://upload-images.jianshu.io/upload_images/2495234-669882c3b1b47585.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
上传一个图片,包含文件,include函数在遇到<?会按php解析
2.
![](http://upload-images.jianshu.io/upload_images/2495234-8c200d9fd7e58efa.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
使用跳出。包含文件
3.
![](http://upload-images.jianshu.io/upload_images/2495234-40338cee7529f751.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
我的php版本是5.5.9不能使用截断
4.
![](http://upload-images.jianshu.io/upload_images/2495234-361c8dbd0e7e4ba6.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
主要url栏里面回会把尖括号换成16进制。
可以通过curl请求来完成。

![](http://upload-images.jianshu.io/upload_images/2495234-08a3fcdbd6a98ab9.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
然后包含日志文件getshell
![](http://upload-images.jianshu.io/upload_images/2495234-d5e780b613581f78.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

或是通过抓包来插入一句话

![](http://upload-images.jianshu.io/upload_images/2495234-3305e5c95124c808.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)


![](http://upload-images.jianshu.io/upload_images/2495234-be030cfa44955a06.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
条件有点困难
**远程文件包含**
远程编写一个非php后缀的文件。里面的内容是php代码。
用来实现远程加载,恶意代码。getshell

![](http://upload-images.jianshu.io/upload_images/2495234-304f940df57b2c16.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

### 防御
* PHP中使用open_basedir限制访问区域
* 过滤.(点)/(斜杠)\(反斜杠)
* 禁止服务器远程文件包含。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容