Jira & Confluence

Support HackTricks

If you are interested in hacking career and hack the unhackable - we are hiring! (wymagana biegła znajomość języka polskiego w mowie i piśmie).

Sprawdź uprawnienia

W Jira, uprawnienia mogą być sprawdzane przez każdego użytkownika, uwierzytelnionego lub nie, za pomocą punktów końcowych /rest/api/2/mypermissions lub /rest/api/3/mypermissions. Te punkty końcowe ujawniają aktualne uprawnienia użytkownika. Znaczącym problemem jest, gdy nieautoryzowani użytkownicy mają uprawnienia, co wskazuje na lukę w zabezpieczeniach, która może kwalifikować się do nagrody. Podobnie, nieoczekiwane uprawnienia dla użytkowników uwierzytelnionych również podkreślają lukę.

Ważna aktualizacja miała miejsce 1 lutego 2019, wymagając, aby punkt końcowy 'mypermissions' zawierał parametr 'permission'. Wymóg ten ma na celu zwiększenie bezpieczeństwa poprzez określenie uprawnień, które są sprawdzane: sprawdź to tutaj

  • 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

Przykład: 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'

Automatyczna enumeracja

Wtyczki Atlasian

Jak wskazano w tym blogu, w dokumentacji dotyczącej Modułów wtyczek ↗ można sprawdzić różne typy wtyczek, takie jak:

To jest przykład typu wtyczki makro:

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; }
}

Można zauważyć, że te wtyczki mogą być podatne na powszechne luki w zabezpieczeniach, takie jak XSS. Na przykład poprzedni przykład jest podatny, ponieważ odzwierciedla dane podane przez użytkownika.

Gdy znajdziesz XSS, w tej repozytorium github możesz znaleźć kilka ładunków, aby zwiększyć wpływ XSS.

Wtyczka Backdoor

Ten post opisuje różne (złośliwe) działania, które może wykonać złośliwa wtyczka Jira. Możesz znaleźć przykład kodu w tym repozytorium.

Oto niektóre z działań, które mogłaby wykonać złośliwa wtyczka:

  • Ukrywanie wtyczek przed administratorami: Możliwe jest ukrycie złośliwej wtyczki poprzez wstrzyknięcie jakiegoś front-endowego javascriptu.

  • Ekstrakcja załączników i stron: Umożliwia dostęp i ekstrakcję wszystkich danych.

  • Kradzież tokenów sesji: Dodaj punkt końcowy, który odzwierciedli nagłówki w odpowiedzi (z ciasteczkiem) oraz jakiś javascript, który się z nim skontaktuje i wycieknie ciasteczka.

  • Wykonanie polecenia: Oczywiście możliwe jest stworzenie wtyczki, która wykona kod.

  • Reverse Shell: Lub uzyskanie reverse shell.

  • Proxy DOM: Jeśli confluence znajduje się w prywatnej sieci, możliwe byłoby nawiązanie połączenia przez przeglądarkę jakiegoś użytkownika z dostępem do niej i na przykład skontaktowanie się z serwerem, wykonując polecenia przez to.

Jeśli jesteś zainteresowany karierą w hackingu i chcesz złamać to, co nie do złamania - zatrudniamy! (wymagana biegła znajomość polskiego w mowie i piśmie).

Wsparcie HackTricks

Last updated