文件操作
文件操作安全:文件上传,文件包含,文件下载,文件读取
文件包含(将文件以脚本执行)——脚本(各种包含函数):ASP PHP JSP ASPX Python Javaweb
文件包含——检测——白盒:代码审计 黑盒:漏扫工具、公开漏洞、手工看参数值及功能点
文件包含——类型——本地包含:无限制、有限制 远程包含:无限制、有限制
文件包含——利用:http、ftp、file、各种脚本支持协议
文件包含——修复:固定后缀、固定文件、WAF产品
——————
文件包含漏洞原理:文件包含漏洞是代码注入的一种。其原理就是注入一段用户能控制的脚本或代码,并让服务器端执行,代码注入的典型代表就是文件包含File inclusion。文件包含可能会出现在jsp、php、asp等语言中。服务器通过函数去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到想要的的目的。
文件包含脚本代码:
#include file="1.asp"
#include file="2.aspx"
<c:import url="http://thief.one/1.jsp">远程
<jsp:include page="head.jsp"/>本地
<%@ include file="head.jsp"%>
<?php include('test.php')?>
——————
本地有限制(例如在文件后面自动加上html后缀,若php版本<5.3,可以直接使用%00截断;长度截断:条件:windows,点号需要长于256位,linux长于4096位【/.】)
远程有限制(在txt后加上%20或者%23或者?)
——————
php伪协议:可以使用php://input实现php代码写入;?file=php://filter/read=convert.base64-encode/resource=index.php;file://+文件路径可以读取;data://
——————
文件被解析,则是文件包含
显示源代码,则是文件读取漏洞
提示文件下载,则是文件下载
——————
文件下载——产生:任意语言下载功能函数
文件下载——检测:白盒:代码审计 黑盒:漏扫工具、公开漏洞、手工看参数值及功能点
文件下载——利用:常见文件(后台首页日志等可见文件)、敏感文件(数据库配置文件,各种接口文件,密匙信息等文件)
文件下载——修复:固定后缀、固定文件、WAF产品
——————
javaweb配置文件:WEB-INF/web.xml
WEB-INF目录下还有classes文件夹,再加上给的路径