【web安全】文件包含漏洞详细整理

前言

菜某的笔记总结,如有错误请指正。

本文用的是PHP语言作为案例

文件包含漏洞的概念

开发者使用include()等函数,可以把别的文件中的代码引入当前文件中执行,而又没有对用户输入的内容进行充分的过滤,所以导致用户可以通过改变输入访问任何文件。

危害

单单一个文件包含的话,并不能有什么大的威胁,但是他像艾滋病一样,他不会干掉你,但是他能让其他的漏洞危害无限放大,让其他漏洞干掉你。

最大功能:不管什么形式的文件,只要里面有PHP代码,就能带入当前文件中执行。

1.配合文件上传:让原本解析不了的文件通过文件包含直接解析。

2.读取网站中的敏感信息,一些储存在文件中的敏感信息,甚至可以跳出网站的文件夹看本盘的文件。

3.自我构建漏洞:即使没有漏洞,也可以直接写一个漏洞上传上去,然后用文件包含去执行。比如SQL注入和远程命令执行。从而实现攻击数据库和操作系统。

4.作为跳板机攻击内网或者其他网站:上传一个ssrf漏洞的代码,然后用文件包含去执行它。让这个服务器去访问其他资源。

有了他你就拥有了一切~

所以这个漏洞大大的强大。

类型

本地包含:包含本地文件

远程包含:包含远程的文件,这个是需要在PHP中进行配置的,可以从phpinfo中看到

最下面的,但是默认是这个off的状态。

这个怎么开百度一下吧,开启之后就可以输入想要包含文件的url,在自己网站上写一些漏洞或者后门让目标网站去包含就可以了。

 文件包含漏洞的基础案例演示

环境为本地搭建

文件位置以及源代码

 

利用方法

可以看到我们用这个漏洞访问了show.txt.

文件包含漏洞的检测方法

白盒:代码审计

黑盒:

1.扫描工具

2.cms平台的公开漏洞

3.根据URL判断

根据URL的判断方法

1.看传参,很明显这里能看出来他包含了show的文件

2.把传参去除看看页面是否一致,再或者访问一下show看看界面是否一致。

3.看英语含义,因为代码大多是用英语简写写的,传参的时候,id一般就是序号,file一般就是文件,file的话一般可能是包含的文件。

文件包含的防御方法

1.固定文件名的后缀

2.升级PHP防止%00的截断

3.使用waf

4.使用白名单,规定部分文件

5.上传的文件进行重命名,防止被读取

 文件包含的部分绕过

绕过固定后缀

源代码和文件

包含的文件强制添加了html后缀

 访问html正常

但是无法访问我们想要访问的txt文件了

绕过方法

%00截断法

前提:对方PHP版本小于5.3.4

因为我的版本比较高,所以就不演示了。

原理就是%00后面的内容会被截掉,.html就不起作用了。

下面这个有一定争议哈

长度截断法

当名称长过了一定限制之后,后面的就全没用了,所以.html在最后面就不起作用。

截断长度:windows长于256,linux长于4096

具体还是要看版本而定。

思路就是添加一些符号,但是系统会把这些符号过滤掉,但是长度过长。后缀限制也给移除了。

但是实测,我发现。。。我的并没有截断,但是有人能截断,这个还是看个人情况吧

文件包含的一些花活案例演示

配合文件上传进行攻击

这里我修改了pikachu靶场的文件上传模块让他含有文件包含漏洞

pikachu文件的修改如下

我在文件上传的部分添加了一个include和file的文件其中include包含了文件上传漏洞。

include代码

file中的代码

 首先我们看到文件包含漏洞是可以利用的

接下来开始文件上传操作

文件上传处只允许上传图片,假设这里过滤十分严谨没有能解析成PHP的可能。

但是我们利用文件包含漏洞

上传一个png文件里面写有一句话木马

 

上传毫无阻拦

这里利用文件包含漏洞去执行图片代码。

用蚁剑去连接

日网站成功!

跳出网站文件夹,包含上级文件

文件位置如下

包含文件路径如上

e盘中存在lookme.txt

我们需要向上跨越三级去包含这个文件。

成功日站。

伪协议

使用前提

各脚本的支持情况

 几个特殊的伪协议

php://协议

常用

php://filter用于读取源码

储存在PHP文件中,包含经常会直接运行,用这个协议可以读取源码。

让他返回一个base64的文件,然后解码。

语法:php://filter/convert.base64-encode/resource=文件路径


php://input用于执行php代码

把post请求中的数据作为代码执行

语法:php://input + [POST DATA]

post写法:<?php phpinfo(); ?>

phar://、zip://、bzip2://、zlib://

用来访问压缩包中的文件

语法案例:

zip://[压缩包绝对路径]#[压缩包内文件]

我的PHP版本高,演示不了。。。

还有一些其他的可以看一下这个

https://www.cnblogs.com/endust/p/11804767.html

总结

嗯,总之就是很强大。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/256454.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

添加新公司代码的配置步骤-Part3

原文地址&#xff1a;配置公司代码 概述 这是讨论创建新公司代码的基本标准配置步骤的第三篇博客。在第 1 部分中&#xff0c;我列出并讨论了企业结构中需要配置的项目。我随后提供了特定 FI 配置的详细信息。在本版本中&#xff0c;我将重点关注 SD 和 MM 模块。以下是这些博…

每日一题:LeetCode-11.盛水最多的容器

每日一题系列&#xff08;day 13&#xff09; 前言&#xff1a; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f308; &#x1f50e…

低代码——“平衡饮食”才是王道

文章目录 一、低代码的概念二、低代码的优点2.1. 高效率与快速开发2.2. 降低技术门槛2.3. 适用于快速迭代与原型开发 三、低代码的缺点3.1. 定制性不足3.2. 深度不足3.3. 可能导致技术债务 四、低代码开发的未来4.1. 深度定制化4.2. 智能化 五、低代码会替代传统编程吗&#xf…

Python Struct 模块:二进制数据的强大解析与打包工具

更多资料获取 &#x1f4da; 个人网站&#xff1a;ipengtao.com Python中的struct模块是一个强大而灵活的工具&#xff0c;用于解析和打包二进制数据。本文将深入介绍struct模块的各个方面&#xff0c;通过丰富的示例代码&#xff0c;帮助读者更全面地理解和运用这一模块&…

参考信号速度变化存在跳跃时容易发生不稳定的阻抗调节

问题描述 当参考信号速度存在跳跃变化时&#xff0c;阻抗调节系统容易发生不稳定。这是因为阻抗调节系统需要根据参考信号的速度来调整其输出阻抗&#xff0c;以匹配负载阻抗&#xff0c;从而保持系统的稳定性。 当参考信号速度突然变化时&#xff0c;阻抗调节系统可能无法及…

C++新经典模板与泛型编程:用成员函数重载实现is_base_of

用成员函数重载实现is_base_of std::is_base_of是一个C 11标准中用于判断某个类是否是另一个类父类的类模板。 #include "killCmake.h"#include<string>using namespace std;class A { };class B : public A { public:B(int x): x_(x){} private:int x_; };/…

LinuxBasicsForHackers笔记 -- BASH 脚本

你的第一个脚本&#xff1a;“你好&#xff0c;黑客崛起&#xff01;” 首先&#xff0c;您需要告诉操作系统您要为脚本使用哪个解释器。 为此&#xff0c;请输入 shebang&#xff0c;它是井号和感叹号的组合&#xff0c;如下所示&#xff1a;#! 然后&#xff0c;在 shebang …

正则表达式(6):分组与后向引用

正则表达式&#xff08;6&#xff09;&#xff1a;分组与后向引用 总结 本博文转载自 在本博客中&#xff0c;”正则表达式”为一系列文章&#xff0c;如果你想要从头学习怎样在Linux中使用正则&#xff0c;可以参考此系列文章&#xff0c;直达链接如下&#xff1a; 在Linux中…

GateWay网关介绍以及整合knife4j聚合所有服务的接口文档

为什么使用网关&#xff1f; 因为多个微服务的端口不同&#xff0c;前端调用不方便&#xff0c;使用网关可以统一接收处理前端的请求&#xff0c;同时方便接口的集中处理&#xff0c;比如鉴权、聚合接口文档、限流等等.. 这里使用Knife4j文档工具来实现接口文档&#xff1a;K…

Linux 防病毒软件:CentOS有哪些付费的防病毒软件

CentOS是一个基于开源的Linux发行版,通常不像Windows那样普遍需要使用付费的防病毒软件。大多数Linux系统侧重于使用开源和免费的安全工具来保护系统。一些常见的免费和开源的防病毒软件和安全工具包括ClamAV、Sophos Antivirus for Linux、rkhunter、chkrootkit等。 如果你非…

VMware提示:此虚拟机似乎正在使用中,取得该虚拟机的所有权失败错误的解决方案

当你遇到这个的时候是不是很疑惑&#xff0c;现在给你解决方案 step1: 先找到配置文件目录 D:\centOs7_mini\ 这里写成你的这个 step2: 在这个地方查找最后面是 .vmx.lck文件夹,然后进行修改、删除、移动都可以 step3: 去虚拟机那边重新启动就行

被法院判决赔偿316991元的【工务园】申请纳斯达克IPO上市

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 猛兽财经获悉&#xff0c;被法院判决赔偿316991元的人力资源SaaS平台Baiya International Group Inc&#xff08;简称&#xff1a;工务园&#xff09;近期已向美国证券交易委员会&#xff08;SEC&#xff09;提交招股书&am…