-15% na nową książkę sekuraka: Wprowadzenie do bezpieczeństwa IT. Przy zamówieniu podaj kod: 10000

.NET + JSON = zdalne wykonanie kodu na serwerze? Czasami tak…

25 września 2017, 11:30 | W biegu | 1 komentarz

Parę dni temu światło dzienne ujrzał projekt ysoserial.net – czyli dotnetowy odpowiednik słynnego javovego ysoserial.
Program generuje odpowiedni ciąg znaków, który po deserializacji na serwerze, powoduje wykonanie na nim wskazanego przez atakującego kodu.

Konkretny przykład tego typu dotnetowego buga można zobaczyć tutaj (deserializacja z JSON), tutaj (deserializacja ciasteczka mającego chronić przed CSRF(!)), czy w Dotnetnuke tutaj (deserializacja z XML). Więcej też w prezentacji tutaj.

O deserializacji pisaliśmy już bardzo dużo – ostatni mega hack na Equifax był zrealizowany przez niekontrolowaną deserializację w bibliotece Apache Struts (dokładniej – w jego pluginie obsługującym API REST-owe; deserializacja była tu automatycznie robiona z XML-a (!)).

Wspominaliśmy też dokładniej o tym temacie w Javie, Pythonie i o podobnych problemach w PHP.

Podsumowując – jeśli (w dowolnej technologii) realizujecie deserializację z dowolnego formatu (binarnego, JSON, XML), zastanówcie się czy myśleliście o bezpieczeństwie…

–ms

Spodobał Ci się wpis? Podziel się nim ze znajomymi:



Komentarze

  1. Sebastian

    Co ciekawsze wrzucenie payloadu do Fiddlera – opcja TextWizzard – wysypuje program :). Czyli analizując requesty z WEB’ a można (prawdopodobnie) wykonać kod na stacji w wewnątrz chronionej sieci.

    Odpowiedz

Odpowiedz