Jira & Confluence

Reading time: 4 minutes

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기

Check Privileges

Jira에서 권한은 인증된 사용자든 아닌 사용자든 /rest/api/2/mypermissions 또는 /rest/api/3/mypermissions 엔드포인트를 통해 확인할 수 있습니다. 이러한 엔드포인트는 사용자의 현재 권한을 드러냅니다. 비인증 사용자에게 권한이 있는 경우보안 취약점을 나타내며, 이는 보상의 대상이 될 수 있습니다. 마찬가지로, 인증된 사용자에게 예상치 못한 권한이 있는 경우도 취약점을 강조합니다.

중요한 업데이트2019년 2월 1일에 이루어졌으며, 'mypermissions' 엔드포인트에 'permission' 매개변수를 포함해야 합니다. 이 요구 사항은 쿼리되는 권한을 명시하여 보안을 강화하는 것을 목표로 합니다: check it here

  • 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'

자동화된 열거

Atlassian 플러그인

블로그에서 언급된 바와 같이, 플러그인 모듈에 대한 문서 ↗에서는 다음과 같은 다양한 유형의 플러그인을 확인할 수 있습니다:

이것은 매크로 플러그인 유형의 예입니다:

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<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 repo에서 XSS의 영향을 증가시킬 수 있는 몇 가지 페이로드를 찾을 수 있습니다.

백도어 플러그인

이 게시물은 악의적인 Jira 플러그인이 수행할 수 있는 다양한 (악의적인) 작업을 설명합니다. 이 repo에서 코드 예제를 찾을 수 있습니다.

악의적인 플러그인이 수행할 수 있는 작업은 다음과 같습니다:

  • 관리자로부터 플러그인 숨기기: 프론트엔드 자바스크립트를 주입하여 악의적인 플러그인을 숨길 수 있습니다.
  • 첨부파일 및 페이지 유출: 모든 데이터에 접근하고 유출할 수 있습니다.
  • 세션 토큰 도용: 응답에서 헤더를 에코하는 엔드포인트를 추가하고, 이를 연락하여 쿠키를 유출하는 자바스크립트를 추가할 수 있습니다.
  • 명령 실행: 물론 코드를 실행하는 플러그인을 생성할 수 있습니다.
  • 리버스 셸: 또는 리버스 셸을 얻을 수 있습니다.
  • DOM 프록시: 만약 컨플루언스가 사설 네트워크 내에 있다면, 접근 권한이 있는 사용자의 브라우저를 통해 연결을 설정하고 예를 들어 서버 명령을 실행할 수 있습니다.

tip

AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기