114 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Jira & Confluence
{{#include ../../banners/hacktricks-training.md}}
## Check Privileges
Jiraでは、**権限は**認証されたユーザーであれ認証されていないユーザーであれ、エンドポイント`/rest/api/2/mypermissions`または`/rest/api/3/mypermissions`を通じて確認できます。これらのエンドポイントは、ユーザーの現在の権限を明らかにします。**非認証ユーザーが権限を持つ**ことは、**セキュリティの脆弱性**を示しており、**バウンティ**の対象となる可能性があります。同様に、**認証されたユーザーに対する予期しない権限**も**脆弱性**を強調します。
重要な**更新**が**2019年2月1日**に行われ、'mypermissions'エンドポイントに**'permission'パラメータ**を含めることが求められました。この要件は、照会される権限を指定することで**セキュリティを強化**することを目的としています: [check it here](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter)
- ADD_COMMENTS
- ADMINISTER
- ADMINISTER_PROJECTS
- ASSIGNABLE_USER
- ASSIGN_ISSUES
- BROWSE_PROJECTS
- BULK_CHANGE
- CLOSE_ISSUES
- CREATE_ATTACHMENTS
- CREATE_ISSUES
- CREATE_PROJECT
- CREATE_SHARED_OBJECTS
- DELETE_ALL_ATTACHMENTS
- DELETE_ALL_COMMENTS
- DELETE_ALL_WORKLOGS
- DELETE_ISSUES
- DELETE_OWN_ATTACHMENTS
- DELETE_OWN_COMMENTS
- DELETE_OWN_WORKLOGS
- EDIT_ALL_COMMENTS
- EDIT_ALL_WORKLOGS
- EDIT_ISSUES
- EDIT_OWN_COMMENTS
- EDIT_OWN_WORKLOGS
- LINK_ISSUES
- MANAGE_GROUP_FILTER_SUBSCRIPTIONS
- MANAGE_SPRINTS_PERMISSION
- MANAGE_WATCHERS
- MODIFY_REPORTER
- MOVE_ISSUES
- RESOLVE_ISSUES
- SCHEDULE_ISSUES
- SET_ISSUE_SECURITY
- SYSTEM_ADMIN
- TRANSITION_ISSUES
- USER_PICKER
- VIEW_AGGREGATED_DATA
- VIEW_DEV_TOOLS
- VIEW_READONLY_WORKFLOW
- VIEW_VOTERS_AND_WATCHERS
- WORK_ON_ISSUES
Example: `https://your-domain.atlassian.net/rest/api/2/mypermissions?permissions=BROWSE_PROJECTS,CREATE_ISSUES,ADMINISTER_PROJECTS`
```bash
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
```
## 自動列挙
- [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe)
- [https://github.com/bcoles/jira_scan](https://github.com/bcoles/jira_scan)
## Atlasian プラグイン
この[**ブログ**](https://cyllective.com/blog/posts/atlassian-audit-plugins)に示されているように、[プラグインモジュール ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/plugin-modules/)に関するドキュメントでは、次のようなさまざまなタイプのプラグインを確認できます。
- [REST プラグインモジュール ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module): RESTful API エンドポイントを公開
- [サーブレット プラグインモジュール ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): プラグインの一部として Java サーブレットをデプロイ
- [マクロ プラグインモジュール ↗](https://developer.atlassian.com/server/confluence/macro-module/): Confluence マクロを実装、すなわちパラメータ化された HTML テンプレート
これはマクロプラグインタイプの例です:
```java
package com.atlassian.tutorial.macro;
import com.atlassian.confluence.content.render.xhtml.ConversionContext;
import com.atlassian.confluence.macro.Macro;
import com.atlassian.confluence.macro.MacroExecutionException;
import java.util.Map;
public class helloworld implements Macro {
public String execute(Map<String, String> map, String body, ConversionContext conversionContext) throws MacroExecutionException {
if (map.get("Name") != null) {
return ("<h1>Hello " + map.get("Name") + "!</h1>");
} else {
return "<h1>Hello World!<h1>";
}
}
public BodyType getBodyType() { return BodyType.NONE; }
public OutputType getOutputType() { return OutputType.BLOCK; }
}
```
これらのプラグインは、XSSのような一般的なウェブ脆弱性に対して脆弱である可能性があることが観察できます。例えば、前の例はユーザーから提供されたデータを反映しているため脆弱です。
XSSが見つかった場合、[**このgithubリポジトリ**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence)にはXSSの影響を増加させるためのペイロードがいくつかあります。
## バックドアプラグイン
[**この投稿**](https://cyllective.com/blog/posts/atlassian-malicious-plugin)では、悪意のあるJiraプラグインが実行できるさまざまな悪意のあるアクションについて説明しています。[**このリポジトリにコード例があります**](https://github.com/cyllective/malfluence)。
悪意のあるプラグインが実行できるアクションのいくつかは次のとおりです:
- **管理者からプラグインを隠す**: フロントエンドのJavaScriptを注入することで悪意のあるプラグインを隠すことが可能です。
- **添付ファイルとページの抽出**: すべてのデータにアクセスし、抽出することを許可します。
- **セッショントークンの盗難**: ヘッダーをレスポンスにエコーするエンドポイントを追加しクッキー付き、それに連絡してクッキーを漏洩させるJavaScriptを追加します。
- **コマンド実行**: コードを実行するプラグインを作成することはもちろん可能です。
- **リバースシェル**: またはリバースシェルを取得します。
- **DOMプロキシング**: Confluenceがプライベートネットワーク内にある場合、アクセス権を持つユーザーのブラウザを通じて接続を確立し、例えばサーバーコマンドを実行することが可能です。
{{#include ../../banners/hacktricks-training.md}}