1. XSS
1.1 反射性XSS reflect:
@RequestMapping("/reflect")
:这是一个注解,指示当发出HTTP请求时,应该调用这个方法。具体来说,当客户端发送一个请求到"/reflect"路径时,Spring框架会将该请求路由到这个方法。@ResponseBody
:这也是一个注解,指示Spring将方法的返回值直接作为HTTP响应体返回给客户端,而不是通过视图解析器渲染成视图。
这段代码的作用是接受一个HTTP请求,在"/reflect"路径上,并将请求中的一个参数(命名为xss
)原封不动地返回给客户端。
1.2 存储型XSS store,show
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的值,并将其作为参数传递给方法。
1.3 安全safe
可以看出,把&,<>,\,',/都转义了。
2. 任意文件读取漏洞
2.1 getImage
把filepath穿给getImgBase64,然后经过处理返回
if (f.exists() && !f.isDirectory()) { // 检查文件是否存在且不是目录 byte[] data = Files.readAllBytes(Paths.get(imgFile)); // 读取文件内容为字节数组 return new String(Base64.encodeBase64(data)); // 将文件内容进行Base64编码并返回
可见这个是个危险的方法:
从Base64.encodeBase64(data)可以知道是经过base64加密的。解码:
2.2 getImageSec
这个方法中对pathFilter对filepath进行了过滤:SecurityUtil.pathFilter(filepath) == null
看一下过滤的规则:pathFilter
temp.indexOf('%') != -1判断传入的参数是否包含%,如果包含就将其解码成utf-8模式。直到不包含%为止。也就是说:检查文件路径中是否存在多次URL编码的情况。最好检查文件路径是否包含..
或以/
开头。
这个虽然经过了过滤,但是针对windows系统。显然还是不安全的
4A评测 - 免责申明
本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。
不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。
本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。
如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!
程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。
侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)