Jira & Confluence

Reading time: 4 minutes

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks

Vérifier les privilèges

Dans Jira, les privilèges peuvent être vérifiés par tout utilisateur, authentifié ou non, via les points de terminaison /rest/api/2/mypermissions ou /rest/api/3/mypermissions. Ces points de terminaison révèlent les privilèges actuels de l'utilisateur. Une préoccupation notable surgit lorsque des utilisateurs non authentifiés détiennent des privilèges, indiquant une vulnérabilité de sécurité qui pourrait potentiellement être éligible à une récompense. De même, des privilèges inattendus pour les utilisateurs authentifiés soulignent également une vulnérabilité.

Une mise à jour importante a été effectuée le 1er février 2019, exigeant que le point de terminaison 'mypermissions' inclue un paramètre 'permission'. Cette exigence vise à améliorer la sécurité en spécifiant les privilèges demandés : 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

Exemple : 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'

Énumération automatisée

Plugins Atlassian

Comme indiqué dans ce blog, dans la documentation sur les modules de plugin ↗, il est possible de vérifier les différents types de plugins, comme :

Ceci est un exemple du type de plugin macro :

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; }
}

Il est possible d'observer que ces plugins pourraient être vulnérables à des vulnérabilités web courantes comme le XSS. Par exemple, l'exemple précédent est vulnérable car il reflète des données fournies par l'utilisateur.

Une fois qu'un XSS est trouvé, dans ce dépôt github, vous pouvez trouver des payloads pour augmenter l'impact du XSS.

Plugin Backdoor

Cet article décrit différentes actions (malveillantes) qu'un plugin Jira malveillant pourrait effectuer. Vous pouvez trouver un exemple de code dans ce dépôt.

Voici quelques-unes des actions qu'un plugin malveillant pourrait effectuer :

  • Cacher les plugins des administrateurs : Il est possible de cacher le plugin malveillant en injectant du javascript front-end.
  • Exfiltration des pièces jointes et des pages : Permet d'accéder et d'exfiltrer toutes les données.
  • Vol de jetons de session : Ajouter un point de terminaison qui renverra les en-têtes dans la réponse (avec le cookie) et un peu de javascript qui le contactera et divulguera les cookies.
  • Exécution de commandes : Bien sûr, il est possible de créer un plugin qui exécutera du code.
  • Shell inversé : Ou obtenir un shell inversé.
  • Proxy DOM : Si le confluence est à l'intérieur d'un réseau privé, il serait possible d'établir une connexion via le navigateur d'un utilisateur ayant accès et, par exemple, de contacter le serveur pour exécuter des commandes à travers lui.

tip

Apprenez et pratiquez le hacking AWS :HackTricks Training AWS Red Team Expert (ARTE)
Apprenez et pratiquez le hacking GCP : HackTricks Training GCP Red Team Expert (GRTE)

Soutenir HackTricks