Preorder drugiego tomu książki sekuraka: Wprowadzenie do bezpieczeństwa IT. -15% z kodem: sekurak-book
WordPress: możliwość resetu hasła dowolnemu użytkownikowi
Teoretycznie podatne są wszystkie WordPressy – aż do najnowszego 4.7.4. Czy panikować? Nie. Raczej poczytać dokładnie oryginalny research + skrót poniżej. W praktyce mamy parę warunków, które muszą być spełnione:
- WordPress w mailu resetującym hasło ustawia nagłówek From/Return-Path bazując na zmiennej SERVER_NAME. Zmienną jednak można w pewnych sytuacjach kontrolować – za pomocą nagłówka Host w requeście HTTP.Nota bene w oryginalnym researchu wskazany jest nagłówek „HTTP_HOST header”. Ale takiego raczej nie ma ;) Jest po prostu nagłowek Host, z którego powstaje używana przez WordPressa zmienna HTTP_HOST.
- Ustawiamy pole From na swój adres e-mail, ale jakoś musimy przechwycić maila. I tu może być większy problem. Jednym z pomysłów jest zalanie użytkowników mailami z resetami hasła – odpowiedzą może manualnie pytając się o co chodzi – a odpowiedzą na nasz adres cytując maila zawierającego linka do resetu hasła.
Jako tymczasowy workaround np. dla serwera www Apache Dawid Golunśki – odkrywca buga – zaleca ustawienie UseCanonicalName On.
–ms
Dobre wtyczki antyspamowe zabezpieczają też formularze logowania i resetu hasła, więc to zawsze jakieś utrudnienie dla automatu.
Poza tym prosta reguła htaccess na action=lostpassword powinna rozwiązać problem i wysłać zapytania na drzewo.