官方公众号企业安全新浪微博
FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。
FreeBuf+小程序
免责声明
本文章中演示的漏洞带有一定攻击性,仅供安全研究与学习之用,风险自负!
传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢
0x01 概述
博客系统的主要技术为SpringBoot 、MyBatis和Thymeleaf等组成,项目结构是传统的三层模式(控制器、模型、页面)。
0x02 管理员账号注册绕过漏洞
系统内未内置账号,第一次登录系统时会强制跳转到 http://localhost:8091/install,注册管理员账号。
注册账号后,通过访问后台地址成功登录系统。
再次访问http://localhost:8091/install页面时,显示已经注册过,请直接登录。
系统未使用权限框架进行登录验证,而是通过自定义拦截器的方式进行权限验证,在拦截器的配置代码中可以看到“/install”和“/install/execute”都是排除在拦截之外。
在“/install/execute”路径的代码中,未发现要求验证访问者权限的代码,可以通过够造数据包的方式访问。
通过补齐参数构造数据包后成功访问,添加新用户test 。
使用新添加的test账号成功登录后台。
0x03 存储型XSS漏洞
使用管理员登录后台,在博客设置/其他设置中统计代码中填入payload:<script>alert('xss')</script>。
首页成功弹窗,JS代码正常执行。
在源码中footer.html页面,代码中使用了th:utext来显示,在thymeleaf中utext会解析html标签,对XSS没有过滤效果。