# Jira & Confluence {{#include ../../banners/hacktricks-training.md}} ## Yetki Kontrolü Jira'da, **yetkiler herhangi bir kullanıcı tarafından**, kimlik doğrulaması yapılmış veya yapılmamış olsun, `/rest/api/2/mypermissions` veya `/rest/api/3/mypermissions` uç noktaları aracılığıyla kontrol edilebilir. Bu uç noktalar kullanıcının mevcut yetkilerini ortaya koyar. **Kimlik doğrulaması yapılmamış kullanıcıların yetkilere sahip olması** önemli bir endişe kaynağıdır ve bu durum **güvenlik açığı** olarak değerlendirilebilir, bu da potansiyel olarak bir **ödül** için uygun olabilir. Benzer şekilde, **kimlik doğrulaması yapılmış kullanıcılar için beklenmedik yetkiler** de bir **açığı** vurgular. **1 Şubat 2019** tarihinde önemli bir **güncelleme** yapıldı ve 'mypermissions' uç noktasının bir **'permission' parametresi** içermesi gerektiği belirtildi. Bu gereklilik, sorgulanan yetkilerin belirtilmesiyle **güvenliği artırmayı** amaçlamaktadır: [check it here](https://developer.atlassian.com/cloud/jira/platform/change-notice-get-my-permissions-requires-permissions-query-parameter/#change-notice---get-my-permissions-resource-will-require-a-permissions-query-parameter) - 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 Örnek: `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' ``` ## Otomatik numaralandırma - [https://github.com/0x48piraj/Jiraffe](https://github.com/0x48piraj/Jiraffe) - [https://github.com/bcoles/jira_scan](https://github.com/bcoles/jira_scan) ## Atlasian Eklentileri Bu [**blogda**](https://cyllective.com/blog/posts/atlassian-audit-plugins) belirtildiği gibi, [Eklenti modülleri ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/plugin-modules/) hakkında belgelerde, aşağıdaki gibi farklı eklenti türlerini kontrol etmek mümkündür: - [REST Eklenti Modülü ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/rest-plugin-module): RESTful API uç noktalarını açığa çıkarır - [Servlet Eklenti Modülü ↗](https://developer.atlassian.com/server/framework/atlassian-sdk/servlet-plugin-module/): Bir eklenti parçası olarak Java servletlerini dağıtır - [Makro Eklenti Modülü ↗](https://developer.atlassian.com/server/confluence/macro-module/): Confluence Makrolarını uygular, yani parametreli HTML şablonları Bu, makro eklenti türüne bir örnektir: ```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 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; } } ``` Bu eklentilerin, XSS gibi yaygın web güvenlik açıklarına karşı savunmasız olabileceği gözlemlenebilir. Örneğin, önceki örnek, kullanıcının verdiği verileri yansıttığı için savunmasızdır. Bir XSS bulunduğunda, [**bu github repo**](https://github.com/cyllective/XSS-Payloads/tree/main/Confluence) XSS'nin etkisini artırmak için bazı payload'lar bulabilirsiniz. ## Arka Kapı Eklentisi [**Bu yazı**](https://cyllective.com/blog/posts/atlassian-malicious-plugin), kötü niyetli bir Jira eklentisinin gerçekleştirebileceği farklı (kötü niyetli) eylemleri tanımlamaktadır. [**Bu repoda kod örneği bulabilirsiniz**](https://github.com/cyllective/malfluence). Kötü niyetli bir eklentinin gerçekleştirebileceği bazı eylemler şunlardır: - **Yönetimcilerden Eklentileri Gizleme**: Kötü niyetli eklentiyi, bazı ön uç javascript'leri enjekte ederek gizlemek mümkündür. - **Ekleri ve Sayfaları Sızdırma**: Tüm verilere erişim sağlamak ve sızdırmak. - **Oturum Token'larını Çalma**: Yanıt içinde başlıkları (çerezle birlikte) yansıtan bir uç nokta eklemek ve bunu iletişim kuracak ve çerezleri sızdıracak bazı javascript'ler eklemek. - **Komut Çalıştırma**: Elbette, kod çalıştıracak bir eklenti oluşturmak mümkündür. - **Ters Shell**: Ya da ters bir shell almak. - **DOM Proxying**: Eğer confluence özel bir ağ içindeyse, buna erişimi olan bir kullanıcının tarayıcısı aracılığıyla bir bağlantı kurmak ve örneğin sunucu komutunu çalıştırmak mümkündür. {{#include ../../banners/hacktricks-training.md}}