Jira & Confluence
Reading time: 4 minutes
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.
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
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
자동화된 열거
Atlassian 플러그인
이 블로그에서 언급된 바와 같이, 플러그인 모듈에 대한 문서 ↗에서는 다음과 같은 다양한 유형의 플러그인을 확인할 수 있습니다:
- REST 플러그인 모듈 ↗: RESTful API 엔드포인트 노출
- 서블릿 플러그인 모듈 ↗: 플러그인의 일부로 Java 서블릿 배포
- 매크로 플러그인 모듈 ↗: 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 repo에서 XSS의 영향을 증가시킬 수 있는 몇 가지 페이로드를 찾을 수 있습니다.
백도어 플러그인
이 게시물은 악의적인 Jira 플러그인이 수행할 수 있는 다양한 (악의적인) 작업을 설명합니다. 이 repo에서 코드 예제를 찾을 수 있습니다.
악의적인 플러그인이 수행할 수 있는 작업은 다음과 같습니다:
- 관리자로부터 플러그인 숨기기: 프론트엔드 자바스크립트를 주입하여 악의적인 플러그인을 숨길 수 있습니다.
- 첨부파일 및 페이지 유출: 모든 데이터에 접근하고 유출할 수 있습니다.
- 세션 토큰 도용: 응답에서 헤더를 에코하는 엔드포인트를 추가하고, 이를 연락하여 쿠키를 유출하는 자바스크립트를 추가할 수 있습니다.
- 명령 실행: 물론 코드를 실행하는 플러그인을 생성할 수 있습니다.
- 리버스 셸: 또는 리버스 셸을 얻을 수 있습니다.
- DOM 프록시: 만약 컨플루언스가 사설 네트워크 내에 있다면, 접근 권한이 있는 사용자의 브라우저를 통해 연결을 설정하고 예를 들어 서버 명령을 실행할 수 있습니다.
tip
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE)
GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks 지원하기
- 구독 계획 확인하기!
- **💬 디스코드 그룹 또는 텔레그램 그룹에 참여하거나 트위터 🐦 @hacktricks_live를 팔로우하세요.
- HackTricks 및 HackTricks Cloud 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.