当前位置: 首页 > news >正文

「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解

引言:什么是路径遍历?如何进行路径遍历攻击并规避常见防御?如何防止路径遍历漏洞。

1. 简介

路径遍历(Path Traversal)是一种安全漏洞,也被称为目录遍历或目录穿越、文件路径遍历。它发生在应用程序未正确验证用户提供的文件路径时,允许攻击者访问系统上的敏感文件或目录,甚至执行恶意代码。

2. 产生根因

路径遍历攻击通常利用应用程序对用户输入的路径或文件名的不充分验证(如包含跳转符../)。攻击者可以通过在文件路径中添加特殊字符或符号来尝试访问超出其授权范围的文件或目录。攻击者可能会利用此漏洞来获取敏感信息、执行任意代码或破坏系统的完整性。

在这里插入图片描述
上图中可以看到文件路径中包含了"../../etc/passwd",且网站应用未对其作校验,导致了服务器的敏感文件直接泄露给攻击者。

3. 攻击面

  • 用户指定文件名;
  • 能够使用绝对路径或相对路径等形式来指定其他目录的文件名;
  • 未充分校验是否允许访问拼接后的文件名;

4. 主要危害

  • 任意用户可访问系统敏感文件,泄露重要信息;
  • 推断服务器目录结构,便于后续攻击;
  • 篡改或删除Web服务器中的文件,如删除文件来让服务器空宕机、篡改脚本文件来控制服务器或篡改网页内容,诱导用户访问恶意网站

5. 防御方法

以下是一些常见的路径遍历攻击防御措施和防范方法:

  1. 输入验证和过滤:应用程序应该对用户提供的输入进行严格的验证和过滤,以确保输入的路径或文件名只包含预期的字符和结构。可以使用白名单验证来限制输入的字符集,并删除或转义可能导致路径遍历的特殊字符,如目录跳转符../、~/,字符截断符%00、dir命令

  2. 使用安全的文件操作函数:在处理文件和路径时,应使用安全的文件操作函数,如绝对路径而不是相对路径,以确保访问的文件或目录是预期的。避免使用可被滥用的函数,如"../"".."

  3. 限制访问权限:确保应用程序的文件和目录权限设置正确,只允许授权用户或进程访问需要的文件和目录。避免对公共目录或敏感文件设置过宽松的权限。

  4. 沙盒环境:将应用程序运行在沙盒环境中,以限制其访问系统资源和文件的能力。这可以减轻路径遍历攻击的潜在影响。

  5. 安全编程实践:采用安全编程实践,如使用安全的开发框架、库和工具,进行代码审查(避免通过异常信息将内部错误信息泄露)和漏洞扫描,以及及时修复已知的安全漏洞。

综上所述,防止路径遍历漏洞的关键是进行严格的输入验证和过滤,使用安全的文件操作函数,限制访问权限,运行在沙盒环境中,并采用安全的编程实践。这些措施可以降低路径遍历攻击的风险,并提高应用程序的安全性。

6. 参考

[1] https://portswigger.net/web-security/file-path-traversal


推荐阅读:
「 典型安全漏洞系列 」05.XML外部实体注入XXE详解
「 典型安全漏洞系列 」04.服务器端请求伪造SSRF详解
「 典型安全漏洞系列 」03.跨站请求伪造CSRF详解
「 典型安全漏洞系列 」02.SQL注入详解
「 典型安全漏洞系列 」01.跨站脚本攻击XSS详解

相关文章:

「 典型安全漏洞系列 」06.路径遍历(Path Traversal)详解

引言:什么是路径遍历?如何进行路径遍历攻击并规避常见防御?如何防止路径遍历漏洞。 1. 简介 路径遍历(Path Traversal)是一种安全漏洞,也被称为目录遍历或目录穿越、文件路径遍历。它发生在应用程序未正确…...

【Android Gradle 插件】Gradle 参考文档收集

Android Plugin DSL Reference 参考文档 Android Plugin DSL Reference 参考文档 : Android Studio 构建配置官方文档 : 配置 build | Android Studio | Android Developers 添加构建依赖项 参考文档 : https://developer.android.google.cn/studio/build/dependencies …...

Controller的部分注解

目录 1.增加 用到注解 1.1RequestBody注解解析: 2.查询方法当中参数不用注解! 3.起售停售用到注解 3.1PathVariable解析 4.删除菜品注解 4.1RequestParam 5.修改用到的注解 5.1修改分两步 用到两个注解 6:总结 1.增加 用到注解…...

CMake简明教程 笔记

推荐B站视频:1.1 Cmake构建项目的流程_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1xa4y1R7vT?p1&vd_sourcea934d7fc6f47698a29dac90a922ba5a3 >>目录 1)CMake初体验 CMake构建流程Windows下使用CMake构建项目Linux下使用CMake构…...

使用 sorted set 实现令牌桶限流

业务场景为限制消息发送,要求每天不超过一次,每七天不超过三次。 Redission 的 RRateLimiter 虽然功能完备且支持自定义限流配置,但是每个限流器都需要维护三个 key,并且 lua 脚本中的判断逻辑较为复杂。 见:Redisso…...

云上高可用系统-韧性设计模式

一、走近韧性设计模式 (一)基本概念 韧性设计模式是一系列在软件工程中用于提高系统韧性的设计原则、策略、实践和模式。韧性(Resilience)在这里指的是系统对于各种故障、异常和压力的抵抗能力,以及在遭受这些挑战后…...

【保姆级教程】Windows11下go-zero的etcd安装与初步使用

【Go-Zero】Windows11下etcd的安装与初步使用 大家好 我是寸铁👊 总结了一篇Windows11下etcd的安装与初步使用的文章✨ 喜欢的小伙伴可以点点关注 💝 前言: 在使用etcd 前,我们需要了解一下etcd 是什么,为什么使用etcd…...

golang通过go-git下载gitlab源码

1 申请令牌 方法1:具体项目下申请: 方法2:全局申请 2 获取token 3 下载代码 package mainimport ("fmt""os""github.com/go-git/go-git/v5" )func main() {_, err : git.PlainClone("/tmp/foo",…...

探索Pyecharts之美-绘制多彩旭日图的艺术与技巧【第37篇—python:旭日图】

文章目录 引言准备工作绘制基本旭日图调整颜色和样式添加交互功能定制标签和标签格式嵌套层级数据高级样式与自定义进阶主题:动态旭日图数据源扩展:外部JSON文件总结 引言 数据可视化在现代编程中扮演着重要的角色,而Pyecharts是Python中一个…...

c++ QT 信号的个人理解 信号就是独立文件调用的一种“协议”

一. 简介 就我个人来理解,信号槽机制与Windows下消息机制类似,消息机制是基于回调函数,Qt中用信号与槽来代替函数指针,使程序更安全简洁。 信号和槽机制是 Qt 的核心机制,可以让编程人员将互不相关的对象绑定在一起&a…...

C#语法(关键字)

C#关键字 关键字是C#编译器预定义的保留字。这些关键字不能作为标识符,但是,如果您想要用它们做标识符,在这个前面加个字符做前缀。 保留关键字abstractasbaseboolbreakbytecasecatchcharcheckedclassconstcontinuedecimaldefaultdelegated…...

让B端管理软件既美观又实用的解决方案来了

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 让B端管理软件既美观又实用的解决方案来了 在当今数字化时代,B端管理软件已…...

npm run dev,vite 配置 ip 访问

启动项目通过本地 ip 的方式访问 方式一.通过修改 package.json "scripts": {"dev": "vite --host 0.0.0.0",}, 方式二.通过修改 vite.config.ts export default defineConfig({plugins: [vue(), vueJsx()],server: { // 配置 host 与 port 方…...

实验3:数据显示输出

1、实验目的: 掌握将内存单元存储的数据显示输出到显示器的方法。 2、实验内容: 将内存单元存储的字节数据(例如 56H)的16进制数的低位输出到显示器并显示。 3、实验要求: (1)运行程序后&a…...

查看 Avro 格式的 Kafka 消息(启用了 Confluent Schema Registry )

使用 Avro 格式传递 Kafka 消息要比 Json 更加高效,因为它是二进制格式,在启用了 Confluent Schema Registry 的情况下,会进一步地提升传输效率,因为 Avro 中的 Schema 信息将不再出现在消息中,消息体积会进一步压缩,同时,还可以利用到 Schema Registry 的其他好处,例如…...

QT+VS实现Kmeans聚类算法

1、Kmeans的定义 聚类是一个将数据集中在某些方面相似的数据成员进行分类组织的过程,聚类就是一种发现这种内在结构的技术,聚类技术经常被称为无监督学习。k均值聚类是最著名的划分聚类算法,由于简洁和效率使得他成为所有聚类算法中最广泛使…...

openssl3.2 - 测试程序的学习 - test\acvp_test.c

文章目录 openssl3.2 - 测试程序的学习 - test\acvp_test.c概述笔记要单步学习的测试函数备注END openssl3.2 - 测试程序的学习 - test\acvp_test.c 概述 openssl3.2 - 测试程序的学习 将test*.c 收集起来后, 就不准备看makefile和make test的日志参考了. 按照收集的.c, 按照…...

Qt Quick 项目(第二集Qt Quick Application创建)

上集回顾 Qt Quick 项目(第一集Qt Quick UI 项目项目创建) 如果将程序的用户界面称为前端,将程序中的数据存储和业务逻辑称为后端,那么传统Qt应用程序的前端和后端都是使用C++来完成的。对于现代软件开发而言,这里有一个存在已久的冲突:前端的演化速度要远快于后端。当用…...

深度强化学习(王树森)笔记03

深度强化学习(DRL) 本文是学习笔记,如有侵权,请联系删除。本文在ChatGPT辅助下完成。 参考链接 Deep Reinforcement Learning官方链接:https://github.com/wangshusen/DRL 源代码链接:https://github.c…...

Cesium材质特效

文章目录 0.引言1.视频材质2.分辨率尺度3.云4.雾5.动态水面6.雷达扫描7.流动线8.电子围栏9.粒子烟花10.粒子火焰11.粒子天气 0.引言 现有的gis开发方向较流行的是webgis开发,其中Cesium是一款开源的WebGIS库,主要用于实时地球和空间数据的可视化和分析。…...

数据恢复与Python环境重建指南

数据恢复前的准备工作确认Anaconda安装路径及删除方式&#xff08;如回收站清理、命令行删除等&#xff09;&#xff0c;避免覆盖原始数据。列出常用存储位置&#xff1a;C:\Users\<用户名>\Anaconda3&#xff08;Windows&#xff09;或/home/<用户名>/anaconda3&a…...

解锁炉石传说终极体验:HsMod插件效率革命全指南

解锁炉石传说终极体验&#xff1a;HsMod插件效率革命全指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod 你是否曾因炉石传说漫长的动画等待而失去耐心&#xff1f;是否希望自定义游戏界面却苦…...

手把手教你用Simulink复现永磁同步电机无感控制:龙伯格+PLL观测器建模全流程(附模型)

永磁同步电机无感控制实战&#xff1a;从龙伯格观测器到PLL锁相环的Simulink全流程解析 在电机控制领域&#xff0c;永磁同步电机&#xff08;PMSM&#xff09;因其高效率、高功率密度等优势&#xff0c;已成为工业驱动和新能源应用的主流选择。而无位置传感器控制技术的突破&a…...

DNS区域传送漏洞详解:从原理到防御(以Bind9为例)

DNS区域传送漏洞深度解析与BIND9安全加固实战指南 当你在浏览器输入一个网址时&#xff0c;背后发生的DNS查询过程就像一场精密的交响乐演出。而区域传送&#xff08;Zone Transfer&#xff09;作为DNS系统中的关键机制&#xff0c;本应是乐谱中协调各声部的指挥棒&#xff0c…...

告别OpenCV DNN!在Windows上用C++和ONNX Runtime部署PyTorch模型(附完整代码)

告别OpenCV DNN&#xff1a;用ONNX Runtime实现C高效模型部署实战 如果你正在Windows平台上用C部署PyTorch模型&#xff0c;大概率已经体验过OpenCV DNN模块的"龟速"推理。当项目从实验室走向生产环境时&#xff0c;性能瓶颈往往就藏在这些看似不起眼的环节里。今天…...

Llama-3.2V-11B-cot企业级落地:保险定损图片自动归因与责任链推理

Llama-3.2V-11B-cot企业级落地&#xff1a;保险定损图片自动归因与责任链推理 想象一下&#xff0c;你是一名保险公司的定损员。每天&#xff0c;你的邮箱里塞满了上百张事故现场照片——撞瘪的车头、破碎的挡风玻璃、划痕累累的车门。你需要从这些照片里&#xff0c;像侦探一…...

快速上手FNF PsychEngine:3大核心功能完全指南

快速上手FNF PsychEngine&#xff1a;3大核心功能完全指南 【免费下载链接】FNF-PsychEngine Engine originally used on Mind Games mod 项目地址: https://gitcode.com/gh_mirrors/fn/FNF-PsychEngine FNF PsychEngine是一款专为《周五夜放克》&#xff08;Friday Nig…...

深入解析PyTorch中.pth文件的保存与加载机制

1. 揭开.pth文件的神秘面纱 第一次接触PyTorch时&#xff0c;看到那些以.pth结尾的文件&#xff0c;你是不是也和我当初一样充满疑惑&#xff1f;这些看似普通的文件&#xff0c;实际上是PyTorch模型持久化的关键。简单来说&#xff0c;.pth文件就像是给AI模型拍的一张"照…...

Qwen-Image-Layered场景实战:用AI图层技术为你的产品图换背景

Qwen-Image-Layered场景实战&#xff1a;用AI图层技术为你的产品图换背景 1. 引言 1.1 电商设计的痛点 在电商运营中&#xff0c;产品主图的质量直接影响转化率。传统换背景流程需要设计师手动抠图、调整边缘、匹配光影&#xff0c;一个产品图往往需要30分钟以上的处理时间。…...

Paperxie AI 毕业论文写作,助力大学生高效搞定初稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/ai/dissertationhttps://www.paperxie.cn/ai/dissertation 在本科毕业季的朋友圈里&#xff0c;总能刷到这样的动态&#xff1a;凌晨三点的台灯下&#xff0c;对着空白文档发…...