WEB渗透之文件包含漏洞

1.文件包含

1.1原理:

服务器执行的php文件中可能包含木马文件或者恶意代码

1.2漏洞产生原因

1.web采用include()等文件包含函数通过动态变量的方式引入需要包含的文件

静态包含使用include指令,动态包含使用include动态标签

静态包含(include指令):<%@include file="需要包含的文件地址("%>

动态包含(include动态标签):<jsp:include page="需要包含的文件地址"></jsp:include>

静态文件和动态文件的区别_LifeAnLearn的博客-CSDN博客_静态文件和动态文件的区别

2.客户端可以控制动态变量(即这个变量用前端用户传进的)

1.3可能出现的情况

1.本地文件包含漏洞:被包含文件在服务器本地,在这种情况下,攻击者会包含一些固定的系统配置文件,从而读取系统敏感信息。很多时候本地文件包含漏洞会结合一些特殊的文件上传漏洞,从而形成更大的漏洞。

服务器中的静态资源和动态资源_Pr Young的博客-CSDN博客-------->这个就说明了被包含的文件既可能是动态文件也可能是静态文件。

2.远程文件包含漏洞:能够通过url地址对远程的文件进行包含(这里应该是指执行url地址中所包含的远程文件)

要求:必须要开启allow_url_include和allow_url_fopen,即两者参数均显示为on

在php.ini中,allow_url_fopen一直默认为on,而allow_url_include从php5.2之后一直默认为off

1.4文件包含函数

include(文件地址)     //找不到被包含文件时发出警告,但依旧会继续执行程序
include_once()       //文件被重复包含时只包含一次
require()            //找不到包含文件时补鞥继续执行
require_once()

2.php文件包含

2.1php文件包含的特点

无视文件后缀(类型),即只要满足为PHP语言,则就会执行

2.2文件包含漏洞

攻击者思路:

通过访问并不存在的文件,得到相关的传递路径

读取敏感文件

包含的文件为系统配置文件,从而得到相关的敏感信息

本地包含配合文件上传(这里的部分知识在文件上传里面)

即包含的文件

远程包含shell

allow_url_include开启

包含Apache日志文件

找到Apache路径,利用包含漏洞包含日志文件获取Webshell。(很多时候,web服务器会将请求写到日志文件中,可获得客户端地址,访问者标识,访问者的验证名字,请求时间,请求类型,状态码以及发送给客户端的字节数)

包含SSH日志文件

把用户名写成"phpinfo",ssh的登录日志就会把此次的登录行为记录到日志中

包含session文件

session:存在服务端,一般用于跟踪会话

PHP封装伪协议

PHP伪协议(封装协议/内置协议)_吃_早餐的博客-CSDN博客_php封装协议

实战练习题

第一题

攻防世界

打开题目得到:

<?php
highlight_file(__FILE__);
    include("./check.php");
    if(isset($_GET['filename'])){
        $filename  = $_GET['filename'];
        include($filename);
    }
?>

需要了解的前置知识:  PHP highlight_file()用法及代码示例 - 纯净天空

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值