Jira & Confluence

Support HackTricks

If you are interested in hacking career and hack the unhackable - we are hiring! (流暢なポーランド語の読み書きが必要).

Check Privileges

Jiraでは、権限は認証されたユーザーでも認証されていないユーザーでも、エンドポイント/rest/api/2/mypermissionsまたは/rest/api/3/mypermissionsを通じて確認できます。これらのエンドポイントは、ユーザーの現在の権限を明らかにします。非認証ユーザーが権限を持つ場合、これはセキュリティの脆弱性を示し、バウンティの対象となる可能性があります。同様に、認証されたユーザーに対する予期しない権限脆弱性を強調します。

重要な更新2019年2月1日に行われ、'mypermissions'エンドポイントには**'permission'パラメータを含める必要があります。この要件は、照会される権限を指定することでセキュリティを強化**することを目的としています: ここで確認

  • 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 プラグイン

このブログに示されているように、プラグインモジュール ↗に関するドキュメントでは、次のようなさまざまなタイプのプラグインを確認できます。

これはマクロプラグインタイプの例です:

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がプライベートネットワーク内にある場合、アクセス権を持つユーザーのブラウザを通じて接続を確立し、例えばサーバーコマンドを実行することが可能です。

ハッキングキャリアに興味があり、ハッキング不可能なものをハッキングしたい方 - 私たちは採用しています!流暢なポーランド語の読み書きが必要)。

HackTricksをサポートする

Last updated