Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
joomla.3.7.0exploit — Joomla 3.7.0 com_fields SQL 인젝션 취약점(CVE-2017-8917)에 대한 개념 증명 익스플로잇으로, CTF 친화적인 워크플로우에서 탐지, 열거 및 데이터 추출을 시연합니다. | Kitploit
도구/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
Vulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration Testing
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Joomla 3.7.0 com_fields SQL 인젝션 취약점(CVE-2017-8917)에 대한 개념 증명 익스플로잇으로, CTF 친화적인 워크플로우에서 탐지, 열거 및 데이터 추출을 시연합니다.

저장소 보기
26개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2017-8917 Joomla SQLi PoC

이 저장소는 Joomla com_fields SQL 인젝션 취약점(CVE-2017-8917)에 대한 간단하고 CTF 친화적인 개념 증명(PoC)을 포함합니다. 목표는 탐지, 열거 및 데이터 추출의 전체 익스플로잇 흐름을 보여주면서도 워크플로우를 가볍게 유지하는 것입니다.

CVE-2017-8917 개요

취약점: Joomla의 com_fields 컴포넌트의 SQL 인젝션.

근본 원인: list[fullordering] 매개변수가 적절히 검증되지 않아 SQL이 생성된 쿼리에 주입될 수 있습니다. 오류 기반 페이로드(예: UpdateXML)를 사용하여 제작된 경우 SQL 결과가 응답에 나타나 데이터 추출이 가능합니다.

익스플로잇 방법(높은 수준):

  1. list[fullordering] 매개변수를 악의적인 페이로드로 설정하여 index.php?option=com_fields&view=fields&layout=modal에 제작된 요청을 보냅니다.
  2. 오류 기반 함수(예: UpdateXML)를 사용하여 데이터베이스가 결과를 반향하도록 강제합니다.
  3. 응답(이 PoC에서는 <title> 태그)을 파싱하여 주입된 출력을 추출합니다.
  4. 쿼리를 반복하여 버전, 데이터베이스 이름, 테이블, 열 및 행을 열거합니다.

주요 코드 경로

다음은 가장 중요한 구성 요소입니다.

parse_args()

CLI 인수를 host와 debug를 가진 간단한 args 객체로 파싱합니다. 스크립트는 HTTP 포트 80을 가정하고 --host로부터 기본 URL을 구성합니다.

run_exploit()

run_exploit()은 주요 조정 함수입니다:

  • 세션 처리: requests.Session()을 사용하여 쿠키와 헤더가 유지되도록 합니다.
  • request_title(): 요청을 보내고 <title> 값을 추출합니다. PoC는 오류 기반 SQLi를 사용하여 데이터를 해당 태그로 유출하므로 이것이 데이터 추출 핵심입니다.
  • build_params(): 주입된 SQL로 취약한 요청 매개변수를 생성합니다.
  • 전체 흐름: 프로브 → 열거 → 덤프
  • 열거/덤프 메서드: sql_list()와 dump_table()이 열거 및 청크 추출을 자동화합니다.

_fetch_token()

CSRF 토큰은 Joomla 로그인 페이지에서 추출됩니다. 일부 시나리오에서는 필요하지 않을 수 있지만, 많은 Joomla 경로에서 여전히 CSRF 검사를 시행합니다. 포함하면:

  • 더 엄격한 설정에 대한 신뢰성이 향상됩니다.
  • PoC가 "가장 현실적"이게 됩니다.
  • 로그인 흐름이나 토큰 검사가 적용된 경우에도 스크립트를 재사용할 수 있습니다.

wrap_payload() 및 encode_sql_string()

이 헬퍼들은 실제 인젝션 페이로드를 생성합니다:

  • wrap_payload()는 원시 쿼리를 UpdateXML(...)로 래핑하여 오류 기반 출력을 강제합니다.
  • encode_sql_string()은 문자열을 CHAR(...) 표현식으로 변환하여 인용 문제를 방지합니다.

청크 추출 (_dump_table())

행은 구분자로 연결되고 잘림을 방지하기 위해 부분 문자열로 가져옵니다. 이렇게 하면 행 값이 긴 경우에도 출력이 일관되게 유지됩니다.

사용법

root@kitploit:~
python main.py --host <TARGET_IP>

선택적 디버그 출력:

root@kitploit:~
python main.py --host <TARGET_IP> --debug

예상 출력 (이 부분을 채우세요)

root@kitploit:~
└─$ python exploit.py --host <TARGET>

                         ]LLLLLLmmmmmLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
                         ]LLLLLLLLLLLLLLLLL[
         ms.             ]LLLLLLLLLLLLLLLLL[              ,m
        ]LLLLs.          ]LLLLLLLL~+LLLLLLL[           _gLLLL
        LLLLLLLL_.        LLLLLLLL  ~~\LLLL[        ,gLLLLLLLi
       dLLLLLLLLLLm_     -LLLLLLLo      LLL[      _mLLLLLLLLLL.
      iLLLLLLLLLLLLLLs.  ]LLf` ,  'c    LLL[   ,gLLLLLLLLLLLLLL
     iLLLLLLLLLLLLLLLLLLsgL`   'c-  \.    LLLLLLLLLLLLLLLLLLLLLL
    ,LLLLLLLLLLLLLLLLLLLLL!      =__/Li  iLLLLLLLLLLLLLLLLLLLLLLL
   gLLLLLLLLLLLLLLLLLLLLLL    imm_.Y~'`  LLLLLLLLLLLLLLLLLLLLLLLLL.
  dLLLLLLLLLLLLLLLLLLLLLLL     'LL_     dLLLLLLLLLLLLLLLLLLLLLLLLLLi
,LLLLLLLLLLLLLLLLLLLLLLLLLi        ~--__LLLLLLLLLLLLLLLLLLLLLLLLLLLLs
'LLLLLLLLLLLLLLLLLLLLLLLLLLs.          LLLLLLLLLLLLLLLLLLLLLLLLLLLLL~
   'LLLLLLLLLLLLLLLLLLLLLLLLLL_.         LLLLLLLLLLLLLLLLLLLLLLLLf
      'LLLLLLLLLLLLLLLLLLLLLLLLLLm_       'LLLLLLLLLLLLLLLLLLLf`
         'LLLLLLLLLLLLLLLLLLLLLLLL'Lm_      LLLLLLLLLLLLLLLL`
            LLLLLLLLLLLLLLLLLLLLLL  'LL     LLLLLLLLLLLLLf
             'LLLLLLLLLLLLLLLLLLL    L     LLLLLLLLLLL~
               _LLLLLLLLLLLLLLL  !i   ]   ,LLLLLLLLLLLs.
           gLLLLLLLLLLLLLLLLL!   's  [ _mLLLLLLLLLLLLLLLs
         gmLLLLLLLLLLLLLLLLLLL      ~eLLLLLLLLLLLLLLLLLLLLLms
      _gLLLLLLLLLLLLLLLLLLLLLL.       'LLLLLLLLLLLLLLLLLLLLLLLs_
   _gLLLLLLLLLLLLLLLLLLLLLLLLLL_        !LLLLLLLLLLLLLLLLLLLLLLLLs.
,gLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLm_       YLLLLLLLLLLLLLLLLLLLLLLLLLms
 LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLs    ]LLLLLLLLLLLLLLLLLLLLLLLLLL`
  'LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL 'YL   ]LLLLLLLLLLLLLLLLLLLLLLLLf
   'LLLLLLLLLLLLLLLLLLLLLLLLLLLf`!   f  ,LLLLLLLLLLLLLLLLLLLLLLLL!
    'LLLLLLLLLLLLLLLLLLLLLLLLL[      LmmLLLLLLLLLLLLLLLLLLLLLLLL`
      LLLLLLLLLLLLLLLLLf  LLLLi   t  LLLLLLL  LLLLLLLLLLLLLLLLL!
      'LLLLLLLLLLLLLf     LLLL[    '*LLLLLLL    'LLLLLLLLLLLLL[
       !LLLLLLLLLf`       LLLLLs     'YLLLLL       ~LLLLLLLLLL
        LLLLLLf~          LLLLLLLs     LLLLL          ~LLLLLL`
        'LLL~             LLLLLLLLLm  iLLLLL             ~LLL~
         ~`               LLLLLLLL[LLmLLLLLL               '`
                          LLLLLL`d[ LLLLLLLL
                          LLLLLLdL[ LLLLLLLL
                          LLLLLLLLLLLLLLLLLL    Juergen Jakubowski
                          LLLLLLLLLLLLLLLLLL
                          LLLLLLLLLLLLLLLLLL   [email protected]

                          EXPLOIT BY ztrxwzy.
              INSPIRED BY THE POC FROM Baptiste Contreras.

[888] Target : http://10.66.187.202:80/index.php
[888] CSRF token : 3ec54b1b32b5dc2dd8186537821b8dc1
[888] http://10.66.187.202:80/index.php is vulnerable to SQLi
[888] Database version detected : 5.5.64-MariaDB
[888] Current database : joomla
[888] Tables in database joomla

크레딧 및 저자

  • 저자: ztrxwzy
  • 영감: 이 PoC의 일부는 Baptiste Contreras의 작업에서 영감을 받았습니다: https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

라이선스

MIT 라이선스 Copyright (c) 2025 Jesús Caldera

이에 따라 본 소프트웨어 및 관련 문서 파일(이하 '소프트웨어')의 사본을 받는 모든 사람에게 소프트웨어를 제한 없이 다룰 수 있는 권한이 무료로 부여됩니다. 여기에는 소프트웨어를 사용, 복사, 수정, 병합, 게시, 배포, 서브라이선스 및/또는 판매할 수 있는 권리와 소프트웨어를 제공받은 사람에게 이를 허용할 수 있는 권리가 포함되며, 다음 조건에 따라야 합니다:

위 저작권 표시와 이 허가 고지는 모든 사본 또는 소프트웨어의 상당 부분에 포함되어야 합니다.

본 소프트웨어는 '있는 그대로' 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않는 어떠한 종류의 명시적 또는 묵시적 보증도 없이 제공됩니다. 어떠한 경우에도 저작자 또는 저작권 보유자는 계약, 불법행위 또는 기타 행위로 인해 발생하는 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않으며, 이는 소프트웨어 또는 그 사용 또는 기타 거래로 인해 발생하거나 이와 관련된 경우에도 마찬가지입니다.

도구 다운로드