Spring Boot – zdalne wykonanie dowolnego kodu na serwerze

05 lutego 2017, 09:00 | W biegu | komentarzy 15
Tagi: , ,
: oglądaj sekurakowe live-streamy o bezpieczeństwie IT.

Zaczynają pojawiać się kolejne pęknięcia w układance o nazwie Spring. Niedawno było to RCE w Spring OAuth, teraz mamy bardzo proste do wykorzystania zdalne wykonanie kodu w Spring Boot.

Wykorzystanie załatanego już około roku temu błędu sprowadza się do wykorzystania faktu że wartości pewnych parametrów traktowane są jako Spring Expression Language (SpEL):

So this meant that any Whitelabel Error Page which reflected user input was vulnerable to it. This was because user input was being treated in as Springs Expression Language (SpEL).

Dalej to już odpowiednie manipulacje wartością parametru, takie jak tutaj:

https://BankDetailForm?id=abc${12*12}abc

czy raczej tutaj:

/BankDetailForm?id=${T(java.lang.Runtime).getRuntime().exec(’id')}

Na koniec mamy RCE (w wersji blind i non-blind)

rce

–ms

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



Komentarze

  1. Odpowiedz
    • Odpowiedz
      • Ok to może warto dodać uwagę że to jest zafixowane od roku i należy się zupgreadowac? Po to są Release trainy żeby upgrade był jak najmniej bolesny.

        Odpowiedz
      • .

        Tak przy okazji, ten OWASP checker jest ok, ale daje bardzo dużo fałszywych alarmów, których nie można wytłumić. Przykład: sterownik mysql ma numerację dużo niższą od serwera mysql, a mają ten sam identyfikator w bazie CVE, więc wyświetla mi się non stop kilkadziesiąt błędów o różnej krytyczności, do czegoś, co mnie nie dotyczy.
        Oczywiście to nie ich wina, że nie da się łatwo zmapować CVE na identyfikatory zależności. Pewnie spróbuję rozszerzyć to nieco, żeby filtrować określone CVE.

        Odpowiedz
  2. Patryk

    Troszkę dziwne, jak kolega wyżej zauważył to jest jakiś staroć, zapomniany, wykryty praktycznie od razu (5 dni i załatane z linku kolegi) i to w czymś czego bądźmy szczerzy: nikt nie używa. Nie wiem dokładnie jakie doświadczenie ma osoba pisząca artykuły z Springiem, ale wprost mówiąc to whitelabela to chyba tylko studenciaki pisząc projekty używają :-) takie odkopywanie jakichs archiwów trochę zniechęca do czytania i śledzenia tej strony…

    Odpowiedz
    • Nikt nie używa, a później RCE w bankowościach, bo nikt też nie aktualizuje bibliotek / frameworków :)

      Odpowiedz
  3. Adam Olczak

    W dodatku cudzysłów jest encodowany i podany przykład nie zadziała.
    Niestety proofreader chyba wam się wypalił.

    Odpowiedz
    • No ale masz w linkowanym tekście masz sposób na obejście tego.

      Odpowiedz
  4. zero one

    Ależ żeście się doczepili do autora. Proszę jakie kozaki krzykacze :-( Do tego pewnie każdy newsman prowadzący własny portal traktujący o bezpieczeństwie. Bez przesady.

    Odpowiedz
    • E, spokojnie. Konkretna krytyka mile widziana – oznacza to lepsze materiały w przyszłości :)

      Odpowiedz
      • Ja do autora nic nie mam. Po prostu pracuje w Pivotalu (robie Spring Clouda, nie Spring Boota) i od razu sie rzucilismy na ten artykul bo wydawalo nam sie, ze to juz bylo kiedys fixowane (co zostalo potwierdzone).

        Odpowiedz
        • Wiesz, wszystkim nie dogodzisz. Ostatnio dostało się nam że za szybko opublikowaliśmy info o exploicie na Joomlę, teraz że znowu za wolno ;-)

          Odpowiedz

Odpowiedz