关注本公众号,长期推送技术文章!
Session 攻击大杀器: Sessionless
Sessionless是一个Burp Suite的扩展,用于编辑、签名、验证和攻击已签名的令牌:
-
Django TimestampSigner
https://docs.djangoproject.com/en/5.0/topics/signing/#verifying-timestamped-values
-
ItsDangerous Signer
https://itsdangerous.palletsprojects.com/en/2.1.x/signer/
-
Express cookie-session middleware
https://expressjs.com/en/resources/middleware/cookie-session.html
-
oauth2-proxy
https://github.com/oauth2-proxy/oauth2-proxy
-
Tornado’s signed cookies
https://www.tornadoweb.org/en/stable/guide/security.html
它提供对HTTP请求/响应和WebSocket消息中令牌的自动检测和内联编辑、令牌的签名,以及对已签名令牌实现自动化暴力攻击相关功能。
Wordlist View
Wordlist View 允许导入 secrets 和 salts 列表文件。扩展程序具有其预先构建的字典列表。大多数 secrets 取自 jwt-secrets。
jwt-secrets: https://github.com/wallarm/jwt-secrets
作为选项,可以使用 Flask-Unsign-Wordlist。该扩展支持 JSON 字符串格式来处理特殊字符,要使用它,请用引号引用秘密字符串。
Flask-Unsign-Wordlist: https://github.com/Paradoxis/Flask-Unsign-Wordlist
Editor View
编辑器视图支持多种已签名的令牌:Django、Dangerous、Flask、Express、OAuth2和Tornado。它允许在Burp Suite的代理、历史记录和重发工具中对已签名的令牌进行修改。
Dangerous 选项卡可用于Flask和Django令牌,具体选择取决于是否检测到了Dangerous或Django令牌。
Editable Fields
提供了一个JSON文本编辑器,用于编辑包含JSON内容的每个组件:
- 危险有效载荷
- Django有效载荷(除了pickle序列化的有效载荷)
- Express有效载荷
提供了一个时间戳编辑器,用于编辑包含时间戳的每个组件:
- 危险时间戳
- Django时间戳
- OAuth2代理时间戳
- Tornado时间戳
提供了一个十六进制编辑器,适用于所有签名令牌,除了Express签名。注意:Express选项卡尚不支持签名的自动更新。请手动将其复制到相应的签名cookie中。
Sign
"Sign"提供了一个签名对话框,可用于通过使用具有签名功能的Keys视图中的密钥对令牌进行签名,从而更新签名。
Brute force
暴力破解将尝试找到用于生成签名的密钥。如果找到了密钥,将显示一个对话框。
暴力破解选项实施了对已签名令牌签名的三种类型的攻击:
- Fast将使用默认的哈希算法和密钥派生。
- Balanced将使用所有已知的密钥派生技术,但不包括PBKDF2HMAC。
- Deep将使用所有密钥派生技术,包括PBKDF2HMAC。
Attack
攻击选项实施了八种针对已签名令牌的著名授权攻击:
- User claims
- Wrapped user claims
- Username and password claims
- Flask claims
- Express claims
- Account user claims
- Authenticated claims
- User access_token
以下将对这些进行更详细的描述
Attacks
所有这些攻击都可以一起使用。请注意,扩展程序在攻击模式下不支持令牌有效负载的修改,因此您的有效负载将被替换为新的有效负载。
User claims
OpenID Connect的ID令牌格式通常由签名库用于存储有关已认证用户的信息。扩展将为管理员用户的ID令牌生成占位符。
Wrapped user claims
与 User claims 攻击相同,但会将其放入用户的JSON属性中。
Username and password claims
另一种存储用户详细信息的常见方式是使用用户名和密码的JSON属性。扩展将为管理员用户生成占位符。
Flask claims
如果在客户端存储Flask认证用户会话信息,则应包括id、_id、user_id或_user_id JSON属性。扩展将为第一个用户(通常是管理员)生成会话。
Express claims
Express 框架使用 passport JSON 属性来存储用户详细信息。扩展将为管理员用户生成占位符。
Account user claims
一些框架可能会使用账户包装器来存储有关已认证用户的信息。为了利用,可能需要使用认证声明。
Authenticated claims
认证声明实现了12个著名的授权标志。
User access_token
用户 access_token 选项生成的 JWT OpenID 连接 ID 令牌,使用相同的密钥和相同的哈希算法进行签名,而不执行任何密钥派生。
Install
项目地址:
https://github.com/d0ge/sessionless
直接Burp加载导入即可
More
https://securityonline.info/sessionless-burp-suite-extension-for-editing-signing-verifying-various-signed-web-tokens/
原文始发于微信公众号(一个不正经的黑客):Session 攻击大杀器: Sessionless
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论