Java安全-JWT,Swagger 接口,Druid 监控

1,Java 安全 - Druid 监控 - 未授权访问 & 信息泄漏
2,Java 安全 - Swagger 接口 - 导入 & 联动批量测试
3,Java 安全 - JWT 令牌 - 空算法 & 未签名 & 密匙提取

Java 安全 - Druid 监控 - 未授权访问 & 信息泄漏

参考:https://developer.aliyun.com/article/1260382
Druid 是阿里巴巴数据库事业部出品,为监控而生的数据库连接池。Druid 提供的监控
功能,监控 SQL 的执行时间、监控 Web URI 的请求、Session 监控。当开发者配置不
当时就可能造成未授权访问漏洞。
攻击点:
1、直接拼接 URL 路径,尝试能否直接未授权访问系统功能点。
2、结合泄露 URL 路径和 Session 信息,利用 BurpSuite 进行尝试登录。
3、利用 Cookie 编辑器替换 Session,再次访问后台路径尝试进入后台。

利用方法:

通过目录扫描或手工输入路径 http://www.xxxx.com/druid/index.html,发现存在 Druid 未授权访问页面,重点关注 URL 监控和 Session 监控页面;

Java 安全 - Swagger 接口 - 导入 & 联动批量测试

Swagger 是一个用于生成、描述和调用 RESTful 接口的 Web 服务。就是将项目中所有
(想要暴露的)接口展现在页面上,并可以进行接口调用和测试的服务。所以可以对这个
接口进行漏洞测试,看是否存在未授权访问、sql 注入、文件上传等漏洞。由于接口太
多,一个个接口测试的话太费时间,所以一般会采用自动化接口漏洞安全测试。

访问:http://ip:port/swagger-ui.html
1、自动化发包测试
Postman:https://github.com/hlmd/Postman-cn
2、自动化漏洞测试
联动 BurpSuite Xray 等

Java 安全 - JWT 令牌 - 空算法 & 未签名 & 密匙获取

JSON Web Token (JWT)。它遵循 JSON 格式,将用户信息加密到 token 里,服务器不
保存任何用户信息,只保存密钥信息,通过使用特定加密算法验证 token,通过 token
验证用户身份。基于 token 的身份验证可以替代传统的 cookie+session 身份验证方
法。这使得 JWT 成为高度分布式网站的热门选择,在这些网站中,用户需要与多个后端
服务器无缝交互

https://jwt.io

1、标头(Header)

alg 字段通常用于表示加密采用的算法。如”HS256″、”RS256″等

typ 字段通常用于表示类型

2,有效载荷(Payload)

Payload 是 JWT 的第二个部分,这是一个 JSON 对象,主要承载了各种声明并传递明文

数据,用于存储用户的信息,如 id、用户名、角色、令牌生成时间和其他自定义声明。

3,签名(Signature)

使用 “alg”: “none” 时,签名部分为空,直接以 . 结尾。

一,空算法:

当 alg 为 none 时没有加密算法

可直接更改 Payload 中的信息并重新生成 base64 的编码发送

二,未签名

有些服务器并未验证 jwt 签名,可以直接尝试修改 payload,或者删除 Signature

三,暴力破解密钥

某些签名算法,例如 HS256 (HMAC+SHA-256),会像密码一样使用一个任意的、独立的字符串作为秘密密钥。这个秘钥如被轻易猜到或暴力破解,则攻击者能以任意的头部和载荷值来创建 JT,然后用密钥重新给令牌签名。

四,源码泄露密钥