网络安全笔记 -- 文件操作(文件包含漏洞)

1. 文件包含漏洞原理


文件包含【将文件以脚本执行】

文件包含漏洞是指网站在展示或者运行一些页面的时候需要将一些文件包含进来运行,这种行为跟文件上传漏洞是一样的,都是一种正常的操作,但是对包含的文件没有做严格的过滤、检查就会导致包含一些非法的文件来运行。

文件包含各个脚本代码:

<include file="1.asp">
<include file="1.aspx">
<c:import url="http://thief.one/1.jsp">
<jsp:include page="head.jsp"/>
<%@ include file="head.jsp"%>
<?php include('test.php')?>

测试:

在一个文本文件中写入一段代码,在phph文件中包含该文件,执行浏览器访问php文件:在这里插入图片描述
在这里插入图片描述


2. 文件包含漏洞类型

  • 白盒:代码审计
  • 黑盒:漏洞扫描工具、公开漏洞、手工看参数值及功能点

文件包含类型: 本地包含、远程包含



2.1 本地包含

  1. 无限制:

test.php代码如下,访问该文件,并传入一个txt文件的地址:
在这里插入图片描述
在这里插入图片描述

  1. 有限制:

test.php代码如下,访问该文件,并传入一个txt文件的地址:

在这里插入图片描述
出现错误,因为该代码强制在后面加上.html后缀:

在这里插入图片描述
解决方法:

%00截断
条件:
php.ini文件中 magic_quotes_gpc=off
php版本 < 5.3.4

在这里插入图片描述

长度截断
条件:
windows,点号需要长于256
Linux,点好需要长于4096

在这里插入图片描述


2.2 远程包含

  1. 无限制:

查看是否开启远程包含权限:
在这里插入图片描述
在远程服务端的a.txt中写入如下代码:
在这里插入图片描述

在浏览器中传入该远程文件地址:
在这里插入图片描述

  1. 有限制:

解决方法:

1. 加 ?

在这里插入图片描述

2. 加 %00
在这里插入图片描述
3. 加 %23

在这里插入图片描述


3. 漏洞修复

固定后缀
固定文件
WAF产品


版权声明:本文为swy66原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。