Afdækning af skjulte farer i upatched WordPress SSRF sårbarhedsforskning

admin

Introduktion – Udforsk det ukendte: Under overfladen af upatchet WordPress SSRF

I det stadigt udviklende landskab af cybersikkerhed forbliver WordPress et populært mål på grund af dets udbredte brug og omfattende plugin-økosystem. Mens WordPress-kernen generelt er sikker, opstår sårbarheder ofte fra tredjeparts plugins og temaer. En sådan sårbarhed, der har vakt opmærksomhed, er Server-Side Request Forgery (SSRF) sårbarheden. I dette blogindlæg vil vi dykke ned i forviklingerne af den uoprettede WordPress SSRF-sårbarhed, dens implikationer, og hvordan WP-Firewall kan hjælpe med at beskytte dit WordPress-websted mod sådanne trusler.

## Grundårsagen: wp_http_validate_url()

I september 2022 udgav SonarSource en vejledning om en upatchet WordPress Core Uauthenticated Blind SSRF. Grundårsagen til denne sårbarhed ligger i funktionen `wp_http_validate_url()`, som er modtagelig for DNS-genbindingsangreb. Selvom selve WordPress-kernen ikke er direkte påvirket, er plugins, der bruger denne sårbare funktion, i fare.

Forstå wp_http_validate_url()

`wp_http_validate_url()`-funktionen er designet til at validere URL'er for at forhindre omdirigering og anmode om forfalskningsangreb. Det kommer dog til kort med at beskytte mod DNS-genbindingsangreb, hvilket gør det til en potentiel vektor for SSRF-sårbarheder. Denne funktion bruges ofte sammen med `wp_remote_get()` og dets sikrere alternativ, `wp_safe_remote_get()`.

Den åbenlyse del: wp_remote_get() og wp_safe_remote_get()

`wp_remote_get()`-funktionen bruges almindeligvis til at anmode om fjernværter gennem serveren. Det er dog velkendt, at det kan føre til SSRF-sårbarheder at sende brugerinput-URL'er til denne funktion. For at mindske denne risiko introducerede WordPress `wp_safe_remote_get()`, som inkluderer yderligere valideringer for at forhindre SSRF-angreb.

Hvor sikker er wp_safe_remote_get()?

`wp_safe_remote_get()`-funktionen er designet til at være et mere sikkert alternativ til `wp_remote_get()`. Ifølge den officielle WordPress-dokumentation:

"Denne funktion er ideel, når HTTP-anmodningen sendes til en vilkårlig URL. URL'en er valideret for at undgå omdirigering og forfalskningsangreb."

Funktionens sikkerhed er dog begrænset af den underliggende `wp_http_validate_url()`-funktion, der, som tidligere nævnt, er sårbar over for DNS-genbindingsangreb.

Dykker ned i funktionen

Kildekoden til `wp_safe_remote_get()` er som følger:

php
funktion wp_safe_remote_get( $url, $args = array() ) {
$args['reject_unsafe_urls'] = sand;
$http = _wp_http_get_object();
returner $http->get( $url, $args );
}

På linje 2 er `$args['reject_unsafe_urls']`-parameteren sat til `true`, som til sidst sender brugerinputtet til `wp_http_validate_url()`-funktionen, før du anmoder om URL'en. Da `wp_http_validate_url()` er sårbar over for DNS-genbindingsangreb, er enhver funktion, der udelukkende er afhængig af den til validering, også sårbar.

Sårbarhedens begrænsninger

Selvom dette ikke er en fuldgyldig SSRF, er der begrænsninger sat af funktionen `wp_http_validate_url()`:

– Protokollen skal enten være "http://" eller "https://".
– Porten kan kun være en af 80, 443 eller 8080

På trods af disse begrænsninger er det muligt at anmode om interne værter inden for disse grænser gennem denne SSRF.

Sårbar plugin-kode

Her er nogle eksempler på sårbar plugin-kode:

Ikke-blind SSRF

php
<?php
require_once('wp-load.php');
$url = $_GET['url'];
$response = wp_safe_remote_get( $url);
$response = wp_remote_retrieve_body( $response);
ekko $respons;
?>

Hvis plugin'et tager brugerinput, sender det til `wp_safe_remote_get()`-funktionen og derefter viser svaret, er det sårbart over for ikke-blind begrænset SSRF.

Blind SSRF

php
<?php
require_once('wp-load.php');
$url = $_GET['url'];
$response = wp_safe_remote_get( $url);
$response_code = wp_remote_retrieve_response_code( $response );
if ($response_code == 200) {
ekko "Op og køre";
} andet {
echo "Ned eller ikke fundet!";
}
?>

Hvis plugin'et sender brugerinput til `wp_safe_remote_get()`, men kun returnerer svarkoden/status, er det sårbart over for blind SSRF, hvilket begrænser indvirkningen på port-scanning af porte 80, 443 eller 8080 på enhver intern vært.

Angrebsdemonstration

For at demonstrere denne sårbarhed udførte vi et angreb på en Apache-server, der kører WordPress på port 80, og en PHP-server, der kører på localhost:8080 med nogle hemmelige oplysninger. Den sårbare kode blev indsat i plugin-mappen `/wp-content/plugins/vulnerable-plugin/index.php`.

GitHub Repository

Du kan finde en sårbar Docker-instans og udnyttelsesscriptet til at lege med på denne sårbarhed i denne GitHub-depot. Kredit: Ananda Dhakal

## Mere sårbare funktioner

Den samme sårbarhed gælder for andre funktioner, der er afhængige af `wp_http_validate_url()` til validering:

– `wp_safe_remote_request()`
– `wp_safe_remote_post()`
– `wp_safe_remote_head()`

Derudover fungerer nogle funktioner som wrappers for `wp_safe_remote_get()` og er også sårbare i et vist omfang:

– `WP_REST_URL_Details_Controller::get_remote_url()`
– `download_url()`
– `wp_remote_fopen()`
– `WP_oEmbed::discover()`

Konklusion

Det er tydeligt, at funktioner, der anses for sikre og designet til at beskytte mod SSRF-sårbarheder, ikke er helt idiotsikre. Tilliden til `wp_http_validate_url()`, som er sårbar over for DNS-genbindingsangreb, udsætter WordPress-websteder for potentielle SSRF-angreb. Vi opfordrer WordPress Core-teamet til at løse dette problem og frigive en patch for at forbedre platformens sikkerhed.

Hvordan WP-Firewall kan hjælpe

Hos WP-Firewall forstår vi den kritiske vigtighed af at sikre dit WordPress-websted mod nye trusler. Vores omfattende sikkerhedsløsninger er designet til at give robust beskyttelse mod en lang række sårbarheder, herunder SSRF-angreb. Her er hvordan WP-Firewall kan hjælpe med at beskytte dit WordPress-websted:

Trusselsdetektion i realtid

WP-Firewall tilbyder trusselsdetektionsfunktioner i realtid, der overvåger dit websted for mistænkelige aktiviteter og potentielle sårbarheder. Vores avancerede algoritmer kan identificere og blokere SSRF-forsøg og sikre, at dit websted forbliver sikkert.

Regelmæssige sikkerhedsrevisioner

Vores team af sikkerhedseksperter udfører regelmæssige revisioner af dit WordPress-websted og dets plugins for at identificere og adressere sårbarheder. Ved at være på forkant med potentielle trusler hjælper vi dig med at opretholde et sikkert miljø for dine brugere.

Automatiseret Patch Management

At holde din WordPress-kerne, temaer og plugins opdaterede er afgørende for sikkerheden. WP-Firewall giver automatiseret programrettelsesstyring, der sikrer, at alle komponenter på dit websted er opdateret med de seneste sikkerhedsrettelser.

Brugerdefinerede firewall-regler

WP-Firewall giver dig mulighed for at oprette brugerdefinerede firewall-regler, der er skræddersyet til dine specifikke behov. Ved at implementere regler, der blokerer for ondsindede anmodninger og uautoriserede adgangsforsøg, kan du forbedre sikkerheden på dit websted.

Omfattende rapportering

Vores detaljerede sikkerhedsrapporter giver indsigt i de opdagede trusler og handlinger, der er truffet for at beskytte dit websted. Med WP-Firewall kan du til enhver tid holde dig informeret om sikkerhedsstatus på dit WordPress-websted.

Beskyttelse mod SSRF med WP-firewall

For specifikt at adressere SSRF-sårbarheder tilbyder WP-Firewall følgende funktioner:

Validering af input

WP-Firewall udfører streng inputvalidering for at sikre, at brugerleverede URL'er er sikre og fri for ondsindede hensigter. Ved at validere input på flere niveauer forhindrer vi SSRF-angreb i at udnytte sårbare funktioner.

DNS-genbindingsbeskyttelse

Vores firewall inkluderer beskyttelsesmekanismer for DNS-genbinding, der registrerer og blokerer forsøg på at udnytte sårbarheder i DNS-genbinding. Dette sikrer, at dit websted forbliver sikkert, selvom underliggende funktioner som `wp_http_validate_url()` er sårbare.

Sikre API-anmodninger

WP-Firewall sikrer API-anmodninger ved at håndhæve strenge validerings- og autentificeringsforanstaltninger. Dette forhindrer uautoriseret adgang og mindsker risikoen for SSRF-angreb rettet mod API-endepunkter.

Kontinuerlig overvågning

Vores løbende overvågningsfunktioner holder et vågent øje med dit websteds trafik og aktiviteter. Enhver mistænkelig adfærd markeres og behandles omgående, hvilket minimerer risikoen for vellykkede SSRF-angreb.

Opfordring til handling

Mens den upatchede WordPress SSRF-sårbarhed udgør en betydelig risiko, kan proaktive foranstaltninger afbøde dens virkning. Ved at udnytte WP-Firewalls omfattende sikkerhedsløsninger kan du beskytte dit WordPress-websted mod SSRF-angreb og andre nye trusler. Vær på forkant med potentielle sårbarheder og sørg for et sikkert miljø for dine brugere med WP-Firewall.

Vent ikke på, at et sikkerhedsbrud skrider til handling. Beskyt dit WordPress-websted i dag med WP-Firewall. Start din gratis prøveperiode og oplev den ro i sindet, der kommer med robust realtidsbeskyttelse.

For mere information om, hvordan WP-Firewall kan hjælpe med at sikre dit WordPress-websted, besøg vores hjemmeside eller kontakt vores supportteam.

Hold dig sikker, vær sikker, og hold dit WordPress-websted beskyttet med WP-Firewall.

Ugentlig sikkerhedsrådgivning

Få den seneste WordPress-sikkerhedsintelligence leveret til din indbakke. Tilmeld dig vores nyhedsbrev og hold dig informeret om de seneste trusler og bedste praksis for at sikre dit WordPress-websted.

Det seneste inden for sikkerhedsrådgivning

Se alle de seneste sikkerhedsrådgivninger, og hold dig opdateret om kritiske sårbarheder, der påvirker WordPress-plugins og -temaer.

– 19. maj 2024: WordPress sårbarhedsrapport (6. maj 2024 til 12. maj 2024)
– 15. maj 2024: Højprioritetssårbarheder rettet i Uncode Core Plugin


wordpress security update banner

Modtag WP Security ugentligt gratis 👋
Tilmeld dig nu
!!

Tilmeld dig for at modtage WordPress-sikkerhedsopdatering i din indbakke hver uge.

Vi spammer ikke! Læs vores privatlivspolitik for mere info.