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

2024-04-12 922 0

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

1.2 存储型XSS store,show

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

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,任意文件读取插图3

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

1.3 安全safe

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

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

2. 任意文件读取漏洞

2.1 getImage

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

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

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

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

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

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

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

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

2.2 getImageSec

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

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

看一下过滤的规则:pathFilter

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

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

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

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


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论