
pfSense CE 2.9.0-DEVELOPMENT - निम्न - रिमोट - CSRF - WOL GET wakeall
abraxaslabs.tech · github.com/abraxas · @abraxas_null · [email protected] · pfsense-wol-get-all
Class: CSRF Reach: Remote
pfSense CE 2.9.0-DEVELOPMENT (9363ac5) - pfsense.org
services_wol.php में अभी भी $_REQUEST['wakeall'] और href="services_wol.php?wakeall=true" बिना usepost के मौजूद है। #16961 इस सार्वजनिक ट्री पर केवल नोट्स है।
| ID | अभी तक कोई CVE नहीं |
| Class | CSRF |
| Reach | Remote (जब तक उल्लेख न हो, प्रमाणित WebGUI) |
| CWE | CWE-352 |
| CVSS | Medium: 4.3 CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:N/I:L/A:N |
| Product | pfSense CE |
| Affected | 2.9.0-DEVELOPMENT (9363ac5b8651a1c7a333180425ce7719070f95f9) |
| Auth | WebGUI सत्र जिसमें page-services-wakeonlan (session; GET mutator) हो |
| License | GNU Affero GPL v3.0 |
| Lab | केवल 127.0.0.1 |
मैंने सार्वजनिक master 9363ac5 को पिन किया। लैब पिन किए गए sink का PHP gadget है, 127.0.0.1:19300 पर loopback HTTP।
श्रृंखला लेख: https://abraxaslabs.tech/research/pfsense-ce-leftovers
| Method | Sink | Privilege |
|---|---|---|
| GET services_wol.php?wakeall=true | प्रत्येक संग्रहीत MAC के लिए send_wol() | Integrity: लैब-प्रमाणित: GET ?wakeall=true ने दोनों संग्रहीत MACs के लिए wol भेजा। wakeall के बिना CONTROL GET ने कोई नहीं भेजा। |
| वही leftover | वही sink | Recon: कोई नहीं। |
| वही leftover | वही sink | Availability: लैब-प्रमाणित: संग्रहीत WOL लक्ष्यों को जगाता है। |
आवश्यक: page-services-wakeonlan (session; GET mutator)। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
आवश्यक: page-services-wakeonlan (session; GET mutator)। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है। जब तक उल्लेख न हो, POST पर CSRF-magic। WebGUI PHP-FPM root है।
सत्र कुकी के बिना unauth। SameSite=Strict अभी भी किसी विदेशी साइट से CSRF पर लागू होता है।
कोई Diagnostics: Command नहीं, जब तक वह पृष्ठ भी अनुदत्त न हो।
cd lab
./run.sh
Loopback 127.0.0.1:19300। Compose प्रोजेक्ट pfsense-wol-get-all। Witness PFSENSE-WOL-GET-ALL-WITNESS। केवल loopback: 127.0.0.1:19300। Compose प्रोजेक्ट pfsense-wol-get-all। Witness PFSENSE-WOL-GET-ALL-WITNESS। पिन की गई पंक्तियों का PHP gadget। रन के बाद स्टैक टूट जाता है।
अंतिम पंक्ति:
SUCCESS PFSENSE-WOL-GET-ALL control-no-packets=yes trigger-wake-all-get=yes PFSENSE-WOL-GET-ALL-WITNESS
केवल POST wakeall। Wake All लिंक पर usepost।
9363ac5b8651a1c7a333180425ce7719070f95f9