Jira & Confluence
Reading time: 4 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Перевірка привілеїв
У Jira, привілеї можна перевірити будь-яким користувачем, автентифікованим чи ні, через кінцеві точки /rest/api/2/mypermissions
або /rest/api/3/mypermissions
. Ці кінцеві точки розкривають поточні привілеї користувача. Значна проблема виникає, коли неавтентифіковані користувачі мають привілеї, що вказує на вразливість безпеки, яка потенційно може бути підставою для бонусу. Аналогічно, неочікувані привілеї для автентифікованих користувачів також підкреслюють вразливість.
Важливе оновлення було зроблено 1 лютого 2019 року, що вимагало, щоб кінцева точка '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
Приклад: 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 Plugin Module ↗: Відкриває RESTful API кінцеві точки
- Servlet Plugin Module ↗: Розгортає Java сервлети як частину плагіна
- Macro Plugin Module ↗: Реалізує макроси 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 ви можете знайти деякі payload'и для збільшення впливу XSS.
Плагін з бекдором
Ця стаття описує різні (зловмисні) дії, які може виконати зловмисний плагін Jira. Ви можете знайти приклад коду в цьому репозиторії.
Ось деякі з дій, які може виконати зловмисний плагін:
- Сховування плагінів від адміністраторів: Можливо сховати зловмисний плагін, інжектуючи деякий front-end javascript.
- Екстракція вкладень і сторінок: Дозволяє отримати доступ і екстрактувати всі дані.
- Крадіжка токенів сесії: Додати кінцеву точку, яка буде відображати заголовки у відповіді (з cookie) і деякий javascript, який буде контактувати з нею і витікати cookie.
- Виконання команд: Звичайно, можливо створити плагін, який буде виконувати код.
- Зворотний шелл: Або отримати зворотний шелл.
- DOM-проксіювання: Якщо Confluence знаходиться в приватній мережі, буде можливим встановити з'єднання через браузер деякого користувача з доступом до нього і, наприклад, зв'язатися з сервером для виконання команд через нього.
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.