Jira & Confluence

支持 HackTricks

如果你对 黑客职业 感兴趣并想要攻克不可攻克的目标 - 我们正在招聘! (需要流利的波兰语书写和口语能力).

检查权限

在 Jira 中,任何用户都可以检查权限,无论是否经过身份验证,通过端点 /rest/api/2/mypermissions/rest/api/3/mypermissions。这些端点揭示了用户当前的权限。当 未经过身份验证的用户拥有权限 时,出现了一个显著的担忧,这表明存在 安全漏洞,可能有资格获得 赏金。同样,经过身份验证的用户的意外权限 也突显了一个 漏洞

2019年2月1日 进行了重要的 更新,要求 '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 插件

如在此 博客 中所示,在关于 插件模块 ↗ 的文档中,可以检查不同类型的插件,例如:

这是宏插件类型的一个示例:

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仓库中可以找到一些有效载荷,以增加XSS的影响。

后门插件

这篇文章描述了恶意Jira插件可能执行的不同(恶意)操作。你可以在这个仓库中找到代码示例

以下是恶意插件可能执行的一些操作:

  • 隐藏管理员的插件:可以通过注入一些前端JavaScript来隐藏恶意插件。

  • 提取附件和页面:允许访问和提取所有数据。

  • 窃取会话令牌:添加一个端点,将在响应中回显头部(包括cookie),并添加一些JavaScript来联系它并泄露cookie。

  • 命令执行:当然可以创建一个执行代码的插件。

  • 反向Shell:或者获取一个反向Shell。

  • DOM代理:如果Confluence在私有网络内,可以通过某个有访问权限的用户的浏览器建立连接,例如通过它联系服务器执行命令。

如果你对黑客职业感兴趣并想要攻克不可攻克的目标 - 我们正在招聘!需要流利的波兰语书写和口语能力)。

支持HackTricks

Last updated