java代码审计java-sec-code XSS,任意文件读取

admin 2024年4月19日21:57:59评论2 views字数 1241阅读4分8秒阅读模式

1. XSS

1.1 反射性XSS reflect:

java代码审计java-sec-code XSS,任意文件读取

@RequestMapping("/reflect"):这是一个注解,指示当发出HTTP请求时,应该调用这个方法。具体来说,当客户端发送一个请求到"/reflect"路径时,Spring框架会将该请求路由到这个方法。@ResponseBody:这也是一个注解,指示Spring将方法的返回值直接作为HTTP响应体返回给客户端,而不是通过视图解析器渲染成视图。

这段代码的作用是接受一个HTTP请求,在"/reflect"路径上,并将请求中的一个参数(命名为xss)原封不动地返回给客户端。

java代码审计java-sec-code XSS,任意文件读取

1.2 存储型XSS store,show

java代码审计java-sec-code XSS,任意文件读取

Cookie cookie = new Cookie("xss", xss);:在这一行中,我们创建了一个名为cookie的新Cookie对象。这个Cookie的名称是"xss",它的值是传入的xss参数的值。这样,我们就将xss参数的值存储在了Cookie中。

response.addCookie(cookie);:在这一行中,我们通过response对象将之前创建的Cookie添加到HTTP响应中。这样,当这个HTTP响应被发送到客户端时,浏览器就会接收到包含名为"xss"的Cookie。

@CookieValue注解,这个注解告诉Spring框架从请求中提取名为 "xss" 的Cookie的值,并将其作为参数传递给方法。

java代码审计java-sec-code XSS,任意文件读取

java代码审计java-sec-code XSS,任意文件读取

1.3 安全safe

java代码审计java-sec-code XSS,任意文件读取

可以看出,把&,<>,,',/都转义了。

2. 任意文件读取漏洞

2.1 getImage

java代码审计java-sec-code XSS,任意文件读取

把filepath穿给getImgBase64,然后经过处理返回

java代码审计java-sec-code XSS,任意文件读取

if (f.exists() && !f.isDirectory()) { // 检查文件是否存在且不是目录 byte[] data = Files.readAllBytes(Paths.get(imgFile)); // 读取文件内容为字节数组 return new String(Base64.encodeBase64(data)); // 将文件内容进行Base64编码并返回

可见这个是个危险的方法:

java代码审计java-sec-code XSS,任意文件读取

从Base64.encodeBase64(data)可以知道是经过base64加密的。解码:

java代码审计java-sec-code XSS,任意文件读取

2.2 getImageSec

java代码审计java-sec-code XSS,任意文件读取

这个方法中对pathFilter对filepath进行了过滤:SecurityUtil.pathFilter(filepath) == null

看一下过滤的规则:pathFilter

java代码审计java-sec-code XSS,任意文件读取

temp.indexOf('%') != -1判断传入的参数是否包含%,如果包含就将其解码成utf-8模式。直到不包含%为止。也就是说:检查文件路径中是否存在多次URL编码的情况。最好检查文件路径是否包含..或以/开头。

java代码审计java-sec-code XSS,任意文件读取

这个虽然经过了过滤,但是针对windows系统。显然还是不安全的

来源:【https://www.freebuf.com/articles/web/】

原文始发于微信公众号(船山信安):java代码审计java-sec-code XSS,任意文件读取

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月19日21:57:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   java代码审计java-sec-code XSS,任意文件读取http://cn-sec.com/archives/2661867.html

发表评论

匿名网友 填写信息