Jira & Confluence
Reading time: 6 minutes
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。
Check Privileges
Jiraでは、権限は認証されたユーザーであれ認証されていないユーザーであれ、エンドポイント/rest/api/2/mypermissions
または/rest/api/3/mypermissions
を通じて確認できます。これらのエンドポイントは、ユーザーの現在の権限を明らかにします。非認証ユーザーが権限を持つことは、セキュリティの脆弱性を示しており、バウンティの対象となる可能性があります。同様に、認証されたユーザーに対する予期しない権限も脆弱性を強調します。
重要な更新が2019年2月1日に行われ、'mypermissions'エンドポイントに**'permission'パラメータを含めることが求められました。この要件は、照会される権限を指定することでセキュリティを強化**することを目的としています: check it here
- 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
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
自動列挙
Atlasian プラグイン
このブログに示されているように、プラグインモジュール ↗に関するドキュメントでは、次のようなさまざまなタイプのプラグインを確認できます。
- REST プラグインモジュール ↗: RESTful API エンドポイントを公開
- サーブレット プラグインモジュール ↗: プラグインの一部として Java サーブレットをデプロイ
- マクロ プラグインモジュール ↗: Confluence マクロを実装、すなわちパラメータ化された HTML テンプレート
これはマクロプラグインタイプの例です:
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リポジトリにはXSSの影響を増加させるためのペイロードがいくつかあります。
バックドアプラグイン
この投稿では、悪意のあるJiraプラグインが実行できるさまざまな(悪意のある)アクションについて説明しています。このリポジトリにコード例があります。
悪意のあるプラグインが実行できるアクションのいくつかは次のとおりです:
- 管理者からプラグインを隠す: フロントエンドのJavaScriptを注入することで悪意のあるプラグインを隠すことが可能です。
- 添付ファイルとページの抽出: すべてのデータにアクセスし、抽出することを許可します。
- セッショントークンの盗難: ヘッダーをレスポンスにエコーするエンドポイントを追加し(クッキー付き)、それに連絡してクッキーを漏洩させるJavaScriptを追加します。
- コマンド実行: コードを実行するプラグインを作成することはもちろん可能です。
- リバースシェル: またはリバースシェルを取得します。
- DOMプロキシング: Confluenceがプライベートネットワーク内にある場合、アクセス権を持つユーザーのブラウザを通じて接続を確立し、例えばサーバーコマンドを実行することが可能です。
tip
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
Azureハッキングを学び、実践する:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricksをサポートする
- サブスクリプションプランを確認してください!
- **💬 Discordグループまたはテレグラムグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローしてください。
- HackTricksおよびHackTricks CloudのGitHubリポジトリにPRを提出してハッキングトリックを共有してください。