hacktricks/network-services-pentesting/pentesting-web/jira.md

8.3 KiB

Jira & Confluence

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

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).

{% embed url="https://www.stmcyber.com/careers" %}

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. Szczególną troską jest sytuacja, gdy użytkownicy nieautoryzowani 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 tym 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).

{% embed url="https://www.stmcyber.com/careers" %}

{% hint style="success" %} Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)

Wsparcie dla HackTricks
{% endhint %}