
CVE-2022-23046에 대한 개념 증명 익스플로잇, PhpIPAM v1.4.4에서 인증된 SQL 인젝션 취약점입니다. edit-bgp-mapping-search.php 엔드포인트를 통해 서버 정보, SMTP 설정, 사용자 해시, 데이터베이스 자격 증명을 추출합니다.
원본 발견 및 수동 PoC는 Fluidattacks에서 제공합니다:
PhpIPAM v1.4.4는 인증된 관리자 사용자가 app/admin/routing/edit-bgp-mapping-search.php를 통해 서브넷을 검색할 때 "subnet" 매개변수에 SQL 문을 주입할 수 있도록 합니다.
이 PoC는 다음과 같은 정보를 가져오기 위해 간단한 SQLi를 실행합니다:
일부 정보는 백엔드를 통해 접근 가능하지만, 여기서는 단일 쿼리로 모든 정보를 손쉽게 가져올 수 있도록 추가했습니다. 자신의 페이로드를 자유롭게 추가/제거하세요.
더 고급 내용은 res.payloads에 자신의 페이로드를 만들거나, Burp Suite를 사용하거나 sqlmap을 사용하세요.
git clone https://github.com/jcarabantes/CVE-2022-23046.git
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python CVE-2022-23046.py -h
version: '3'
services:
phpipam-web:
image: phpipam/phpipam-www:v1.4.3
ports:
- "8888:80"
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- IPAM_DATABASE_WEBHOST=%
restart: unless-stopped
volumes:
- phpipam-logo:/phpipam/css/images/logo
depends_on:
- phpipam-mariadb
phpipam-cron:
image: phpipam/phpipam-cron:latest
ports:
- "8889:80"
environment:
- TZ=Europe/London
- IPAM_DATABASE_HOST=phpipam-mariadb
- IPAM_DATABASE_PASS=my_secret_phpipam_pass
- SCAN_INTERVAL=1h
restart: unless-stopped
depends_on:
- phpipam-mariadb
phpipam-mariadb:
image: mariadb:latest
environment:
- MYSQL_ROOT_PASSWORD=my_secret_mysql_root_pass
restart: unless-stopped
volumes:
- phpipam-db-data:/var/lib/mysql
volumes:
phpipam-db-data:
phpipam-logo:
python CVE-2022-23046.py -h
___ _ _ ____ ___ ___ ___ ___ ___ ___ ___ __ _
/ __)( \/ )( ___)___(__ \ / _ \(__ \ (__ \ ___(__ \ (__ ) / _ \ /. | / )
( (__ \ / )__)(___)/ _/( (_) )/ _/ / _/(___)/ _/ (_ \( (_) )(_ _)/ _ \
\___) \/ (____) (____)\___/(____)(____) (____)(___/ \___/ (_) \___/
Vulnerability discovered by Oscar Uribe
PoC author: @javicarabantes
usage: CVE-2022-23046.py [-h] [-d] [-q] --url URL --user USER
optional arguments:
-h, --help show this help message and exit
-d Debug output
-q Do not print the banner
--url URL phpipam url: https://ipamserver:8081/
--user USER admin user
python CVE-2022-23046.py --url http://localhost:8888/ --user admin

이 PoC를 phpipam 버전 1.4.3, 1.4.4 및 1.5에서 테스트했으며 (1.4.5 미만뿐만 아니라) 잘 작동했습니다.
phpipam GitHub 프로젝트를 확인한 결과, 커밋 4b764b9cb236d1a4a06fc8ad9a93b306b3f5c04d가 버전 1.5에도 영향을 미친 것을 확인했습니다.
CHANGELOG에 접근 가능하고 이 수정 사항에 대한 주석이 있는지 확인하세요. 그렇지 않으면 phpipam 서버가 취약할 수 있습니다.
curl -sk https://phpipamserver/misc/CHANGELOG | grep "edit-bgp-mapping-search.php"