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
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
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 nieuwierzytelnieni 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 została wprowadzona 1 lutego 2019, wymagająca, 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 Atlassiana
Jak wskazano w tym blogu, w dokumentacji dotyczącej Modułów wtyczek ↗ można sprawdzić różne typy wtyczek, takie jak:
- Moduł wtyczki REST ↗: Ekspozycja punktów końcowych API RESTful
- Moduł wtyczki Servlet ↗: Wdrażanie serwletów Java jako część wtyczki
- Moduł wtyczki Makro ↗: Implementacja Makr Confluence, tj. parametryzowane szablony HTML
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żliwe jest zaobserwowanie, ż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ącym 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 HackTricks
- Sprawdź plany subskrypcyjne!
- Dołącz do 💬 grupy Discord lub grupy telegram lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się trikami hackingowymi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów github.