海康安防iSecure系统代审

admin 2024年2月21日19:33:43评论40 views字数 3252阅读10分50秒阅读模式

0x01 前言

    最近也是专研代审一段时间,也是发现要走的路很长很长。本篇所用的java方法我已经在上一篇写到,如有不足之处请见谅。

0x02 路由分析

java源码中,我们要先查看web-inf这个目录。

下面为这个目录的解释

海康安防iSecure系统代审

查看web-inf的web.xml文件,我们发现并没有写相关的过滤器配置

海康安防iSecure系统代审

所以并没有太多的东西,我们在看到classes目录,发现有以下文件,这几个文件可以看出是springmvc框架,以下的文件是spring的配置文件

海康安防iSecure系统代审


1、appllication.properties

这是Spring Boot项目中的核心配置文件,用于存储应用级别的各种属性设置。它涵盖了诸如数据库连接、服务器端口、日志级别、国际化设置等全局配置信息。对于Spring MVC模块来说,可以在这里配置视图解析器、静态资源映射、拦截器等。

那么也是在这个配置文件中找到一个重要的信息,那么也就是说他的默认目录是center,必须加上这个目录

  • spring.jmx.default-domain=center

  • 这个properties函数配置了Spring JMX的默认域名为"center"。JMX是Java Management Extensions的缩写,是一种用于管理Java应用程序的框架。通过配置默认域名为"center",可以使得Spring JMX能够管理中心模块的相关信息。

  • 海康安防iSecure系统代审


2、springMVC-servlet.xml

在传统的Spring MVC项目中,这是一个XML形式的Spring配置文件,主要用于配置Spring MVC相关的Bean和行为,包括控制器(Controller)、视图解析器(View Resolver)、拦截器(Interceptor)、消息转换器(Message Converter)等。

在这里先解释下

  • mvc:interceptor:
    该标签用于声明一个拦截器。在SpringMVC中,拦截器可以对进入应用控制器之前的HTTP请求进行预处理或后处理。

  • mvc:mapping:
    该子标签设置在mvc:interceptor内部,用于指定拦截器需要处理的请求路径模式。例如 path="/**/*" 表示拦截所有路径的请求。

  • mvc:exclude-mapping:
    同样设置在mvc:interceptor内部,但它用于排除特定的请求路径模式,即对于匹配到这些路径的请求,不会经过当前拦截器的处理。

  • <bean class="">:
    这是Spring框架中的标准标签,用于定义一个Bean对象。在这个上下文中,它指定了拦截器类的全限定名,如 com.hikvision.center.module.login.interceptor.LoginInterceptor。当请求匹配到mvc:mapping所定义的路径时,将会创建并使用这个类的实例来执行拦截操作。


  • 它定义了三个拦截器

  • 第一部分

  • 第一个拦截器是LoginInterceptor,它拦截所有请求路径,但排除了一些特定的请求路径,如这个拦截器的作用是进行用户登录验证。

    "/center/api/session"、"/center/api/session/captcha"、"/center/api/locales"、"/.html"、"//.html"、"//*.js"、"//.css"、"//.png"、"//.gif"、"//.ico"、"/**/.hbs"、"//.json"、"//.ttf"、"//.woff"、"//*.eot"、"//.svg"和"//.otf"。


  • 海康安防iSecure系统代审


  • 第二部分

定义PermissionInterceptor拦截器,拦截所有目录

海康安防iSecure系统代审


  • 第三部分

定义TracingHandlerInterceptor拦截器

  • 第三个拦截器是TracingHandlerInterceptor,它拦截所有请求路径,但排除了一些特定的请求路径,与第一个拦截器相同。这个拦截器的作用是进行请求追踪和日志记录。它还包含一些属性,如componentId和segmentId,用于配置追踪和日志记录的相关信息


    海康安防iSecure系统代审


0x03 鉴权绕过

1、removeSemicolonContentInternal

    在此之前 这里是需要知道srpingmvc的一个特征

    1. 移除所有的分号

    2. 移除分号后面直到下一个斜杠”/”之间的所有字符

2、绕过

    为这个特性我们可以根据他的默认配置,访问这里的/api/meta

海康安防iSecure系统代审

/center/api/meta;.js

  • 首先因为前面的配置  .js是不鉴权的,进行匹配

  • 又因为removeSemicolonContentInternal作用,他会将;后面的内容进行移除

  • 所以就导致了权限绕过

海康安防iSecure系统代审

再来看看没有绕过的

海康安防iSecure系统代审

    

0x04 文件上传

 

根据全局搜索关键字MultipartFile,找到

center/WEB-INF/sources/com/hikvision/center/module/faq/controller/KnowledgeController.jav

海康安防iSecure系统代审

那么就先分析这串代码,首先

  • 用RequestMapping定义一个路径files,请求方法必须为post

  • 之后定义Object类,方法为uploadFile,里面还定义了两个MultipartFile对象file还有upload

海康安防iSecure系统代审

  • 设置请求的编码

  • 判断传入的file还有upload是否为空,如果都为空,则返回报错

  • 如果file为空,upload不为空,就将upload赋值为file

  • 如果file和upload都为空则报错

海康安防iSecure系统代审

  • 生成后缀名

  • 利用try-catch异常来上传文件

  • 这里需要注意的是this.knowledgeService.uploadFile他是将file进行传入赋值给json,这里很可能是个上传的方法

海康安防iSecure系统代审

  • 定义的是一个抽象上传的方法,并没有过多的操作步骤

  • 么就将眼光放入到impl这个实现方法目录下的KnowledgeServiceimpl这个文件


海康安防iSecure系统代审

  • 继承于IKnowledgeService方法,并实现相关的方法作用

海康安防iSecure系统代审

定位到uploadFile

  • 实现了uploadFile相关代码的操作

  • 这里生成一个uuid的值,还有获取文件名

  • 并将资源路径与指定的UUID拼接起来,返回拼接后的完整路径。其中,AddressUtil.getResourcePath()是一个获取资源路径的方法,File.separator是文件分隔符,uuid是一个字符串参数,表示UUID。

  • 在检查这个原始路径是否存在,没有就mkdir创建一个

  • 在创建一个Json对象,将uuid和文件名等相关信息进行传入,那么也就是说这里的文件名可控,没有过滤,路径可控

海康安防iSecure系统代审

最后也是没有过滤直接将文件名进行拼接

海康安防iSecure系统代审

payload

POST /center/api/files;.js HTTP/1.1Host: xContent-Type: multipart/form-data; boundary=----WebKitFormBoundaryxxmdzwoeUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36
------WebKitFormBoundaryxxmdzwoeContent-Disposition: form-data; name="upload或者是file";filename="../../../../../bin/tomcat/apache-tomcat/webapps/clusterMgr/1.jsp"Content-Type:image/jpeg
1------WebKitFormBoundaryxxmdzwoe--

海康安防iSecure系统代审


0x05 结尾

    本人写的不好如有不足之处请见谅,此篇文章也是简单做个java代审记录。

    


原文始发于微信公众号(Poker安全):海康安防iSecure系统代审

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月21日19:33:43
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   海康安防iSecure系统代审https://cn-sec.com/archives/2513057.html

发表评论

匿名网友 填写信息