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

java-sec-code学习3-目录穿越漏洞

Java-Sec-Code学习3-目录穿越漏洞

case1

java-sec-code默认的漏洞URL是http://127.0.0.1:8080/path_traversal/vul?filepath=../../../../../etc/passwd
在这里插入图片描述

直接审计源代码,看看漏洞代码啥样。
在这里插入图片描述这里很简单,/path_traversal/vul路由下就是直接通过接受filepath参数值作为文件路径读取内容。这里通过getImgBase64来进行读取,可以看一下具体方法。
在这里插入图片描述可以看到方法中,创建了一个File对象来读取filepath对应的文件,如果路径不是目录且文件存在,就直接读取文件内容再base64编码后返回。这也是为什么我们读取/etc/passwd是回显的不是直接明文,而是base64编码内容了。
这里没有对用户输入的filepath参数做任何的处理,直接读取文件,造成了任意的目录穿越和文件读取。

case2

这是一个修复后的安全案例,看看他怎么修的。
在这里插入图片描述
主要就是对filepath做路径过滤,通过调用了一个SecurityUtil.pahtFilter()方法来实现的,那么我们跟一下,看看具体过滤怎么写的。
在这里插入图片描述
这里的37应该是html编码中的37,也就是对应的%,这里其实是首先对filepath进行url解码直到没有%出现为止。然后,只有不包含..和不以/开头才能通过验证,否者被返回null。


http://www.kler.cn/a/354912.html

相关文章:

  • c++ 类似与c# 线程 AutoResetEvent 和 ManualResetEvent的实现
  • 使用ForceBindIP绑定应用到指定IP
  • 每日一题 343. 整数拆分
  • iClient3D for Cesium 加载shp数据并拉伸为白模
  • openwrt 负载均衡方法 openwrt负载均衡本地源接口
  • 007-spring-bean的相关配置(重要)
  • Spring Boot 整合 MyBatis 快速入门超详教程
  • 设计模式04-创建型模式1(简单工厂/工厂模式/抽象工厂/Java)
  • 敏捷Scrum项目管理方法,如何做好敏捷项目管理❓
  • 距离上次发文已经十个多月了
  • linux svn命令简单使用
  • 面试会问到的AI 算法题(二)
  • postgresql是国产数据库吗?
  • 4.8 大数据发展趋势
  • 春日编程助手:Spring Boot课程答疑服务
  • 大数据治理:全面提升数据资产价值
  • TSmaster CAN的E2E检验配置
  • Centos7安装ZLMediaKit
  • 【Spring】@Autowired注解自动装配的过程
  • 二、数据离线处理场景化解决方案
  • 【AI大模型】尝试 Google Gemma 模型 MacOS 本地部署
  • HTTP代理的优点和局限性
  • 华为国际云:全球领先的云服务解决方案
  • .net core 实现多线程方式有哪些
  • spring 如何解决循环依赖
  • 《米小圈动画成语》|在趣味中学习,在快乐中掌握成语知识!