# Jira & Confluence {{#include ../../banners/hacktricks-training.md}} ## Check Privileges Jira에서 **권한은** 인증된 사용자든 아닌 사용자든 `/rest/api/2/mypermissions` 또는 `/rest/api/3/mypermissions` 엔드포인트를 통해 확인할 수 있습니다. 이러한 엔드포인트는 사용자의 현재 권한을 드러냅니다. **비인증 사용자에게 권한이 있는 경우**는 **보안 취약점**을 나타내며, 이는 **보상**의 대상이 될 수 있습니다. 마찬가지로, **인증된 사용자에게 예상치 못한 권한**이 있는 경우도 **취약점**을 강조합니다. 중요한 **업데이트**가 **2019년 2월 1일**에 이루어졌으며, 'mypermissions' 엔드포인트에 **'permission' 매개변수**를 포함해야 합니다. 이 요구 사항은 쿼리되는 권한을 명시하여 **보안을 강화**하는 것을 목표로 합니다: [check it here](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) - 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` ```bash #Check non-authenticated privileges curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true' ``` ## 자동화된 열거 - [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe) - [https://github.com/bcoles/jira_scan](https://github.com/bcoles/jira_scan) ## Atlassian 플러그인 이 [**블로그**](https://cyllective.com/blog/posts/atlassian-audit-plugins)에서 언급된 바와 같이, [플러그인 모듈에 대한 문서 ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/plugin-modules/)에서는 다음과 같은 다양한 유형의 플러그인을 확인할 수 있습니다: - [REST 플러그인 모듈 ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module): RESTful API 엔드포인트 노출 - [서블릿 플러그인 모듈 ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): 플러그인의 일부로 Java 서블릿 배포 - [매크로 플러그인 모듈 ↗](https://developer.atlassian.com/server/confluence/macro-module/): Confluence 매크로 구현, 즉 매개변수화된 HTML 템플릿 이것은 매크로 플러그인 유형의 예입니다: ```java 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 map, String body, ConversionContext conversionContext) throws MacroExecutionException { if (map.get("Name") != null) { return ("

Hello " + map.get("Name") + "!

"); } else { return "

Hello World!

"; } } public BodyType getBodyType() { return BodyType.NONE; } public OutputType getOutputType() { return OutputType.BLOCK; } } ``` 이 플러그인들이 XSS와 같은 일반적인 웹 취약점에 취약할 수 있음을 관찰할 수 있습니다. 예를 들어, 이전 예시는 사용자가 제공한 데이터를 반영하기 때문에 취약합니다. XSS가 발견되면, [**이 github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence)에서 XSS의 영향을 증가시킬 수 있는 몇 가지 페이로드를 찾을 수 있습니다. ## 백도어 플러그인 [**이 게시물**](https://cyllective.com/blog/posts/atlassian-malicious-plugin)은 악의적인 Jira 플러그인이 수행할 수 있는 다양한 (악의적인) 작업을 설명합니다. [**이 repo에서 코드 예제를 찾을 수 있습니다**](https://github.com/cyllective/malfluence). 악의적인 플러그인이 수행할 수 있는 작업은 다음과 같습니다: - **관리자로부터 플러그인 숨기기**: 프론트엔드 자바스크립트를 주입하여 악의적인 플러그인을 숨길 수 있습니다. - **첨부파일 및 페이지 유출**: 모든 데이터에 접근하고 유출할 수 있습니다. - **세션 토큰 도용**: 응답에서 헤더를 에코하는 엔드포인트를 추가하고, 이를 연락하여 쿠키를 유출하는 자바스크립트를 추가할 수 있습니다. - **명령 실행**: 물론 코드를 실행하는 플러그인을 생성할 수 있습니다. - **리버스 셸**: 또는 리버스 셸을 얻을 수 있습니다. - **DOM 프록시**: 만약 컨플루언스가 사설 네트워크 내에 있다면, 접근 권한이 있는 사용자의 브라우저를 통해 연결을 설정하고 예를 들어 서버 명령을 실행할 수 있습니다. {{#include ../../banners/hacktricks-training.md}}