niedziela, 13 maja 2012

WordPress 3.3.2 – Persistent XSS 0-day

Ostatnio zrobiło się głośno o XSS w wordpress 3.3.2
Autor uważa, że trzeba być administratorem, by dodać złośliwy kod.
Sprawa wygląda nieco inaczej, kod może dodać każdy zalogowany użytkownik który posiada konto z uprawnieniami Administratora lub Redaktora.
Oto ten exploit Click! W wordpress 3.3.1 jest taki sam błąd.


W pliku wp-comments-post.php:
W lini 53:

$comment_content      = ( isset($_POST['comment']) ) ? trim($_POST['comment']) : null;

zrobimy filtrowanie:

$comment_content      = ( isset($_POST['comment']) ) ? htmlspecialchars(strip_tags(trim($_POST['comment']))) : null;

Konta z tymi uprawnieniami co te powyżej mogą użyć też innych XSS.
Inne XSS:

Nowy wpis->Tytuł
Strony->Dodaj nową->Tytuł
Wpisy->Dodaj nowy->Tytuł
Komentarze->Edytuj->Treść

Jeśli ustawione jest wyświetlanie 'Najnowsze komentarze' to dodatkowo jeśli w nazwie
wpisów są XSS, to zobaczymy tyle alertów, ile jest komentarzy do danego wpisu w 'Najnowsze komentarze'

W media, jeśli dodajemy plik to w nazwie tego pliku oraz jego opisie też możemy dodać XSS.
Jeśli ten plik dodamy do jakiegoś wpisu, ujrzymy alert bądź dwa.

1 komentarz:

  1. Brak-2-sensu :)

    Po 1:

    "Autor uważa, że trzeba być administratorem, by dodać złośliwy kod.
    Sprawa wygląda nieco inaczej, kod może dodać każdy zalogowany użytkownik który posiada konto z uprawnieniami Administratora lub Redaktora."

    Przeczytaj co napisałeś. Pierwsze i drugie na to samo wychodzi. Ponadto, jeśli administrator ma możliwość dodawania kodu HTML to jest to zrobione w jakimś celu i jest to ficzer, a Ty swoim patchem sprawiłeś, że ficzer przestał działać.

    Tak więc pomijając już nawet to, że nie jest to żadna podatność i tak musisz być administratorem żeby mieć do w/w funkcjonalności dostęp a samo istnieje tego wymaginowanego xssa w tym nie pomaga.

    Ogólnie na każdym bugtraqu gdzie można komentować publikacje, czy też są one moderowane a nie dodawane jak leci "bug" ten został wyśmiany ;)

    OdpowiedzUsuń