Jira & Confluence

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Check Privileges

Jira में, privileges को किसी भी उपयोगकर्ता द्वारा जांचा जा सकता है, चाहे वह प्रमाणित हो या नहीं, /rest/api/2/mypermissions या /rest/api/3/mypermissions के endpoints के माध्यम से। ये endpoints उपयोगकर्ता के वर्तमान privileges को प्रकट करते हैं। एक महत्वपूर्ण चिंता तब उत्पन्न होती है जब गैर-प्रमाणित उपयोगकर्ताओं के पास privileges होते हैं, जो एक सुरक्षा कमजोरियों को इंगित करता है जो संभावित रूप से बाउंटी के लिए योग्य हो सकता है। इसी तरह, प्रमाणित उपयोगकर्ताओं के लिए अप्रत्याशित privileges भी एक कमजोरी को उजागर करते हैं।

1 फरवरी 2019 को एक महत्वपूर्ण अपडेट किया गया, जिसमें 'mypermissions' endpoint को एक 'permission' parameter शामिल करने की आवश्यकता थी। यह आवश्यकता सुरक्षा को बढ़ाने के लिए है, जो पूछे जा रहे privileges को निर्दिष्ट करती है: 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

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

Automated enumeration

Atlasian Plugins

जैसा कि इस ब्लॉग में संकेतित किया गया है, Plugin modules ↗ के बारे में दस्तावेज़ में विभिन्न प्रकार के प्लगइन्स की जांच करना संभव है, जैसे:

  • REST Plugin Module ↗: RESTful API endpoints को उजागर करें
  • Servlet Plugin Module ↗: एक प्लगइन के हिस्से के रूप में Java servlets को तैनात करें
  • Macro Plugin Module ↗: Confluence Macros को लागू करें, यानी पैरामीटरयुक्त 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<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 का समर्थन करें