Bash – wykonanie dowolnego kodu przez autocomplete (!)

07 lutego 2017, 20:06 | W biegu | komentarze 3
: zin o bezpieczeństwie - pobierz w pdf/epub/mobi.

Jeśli ktoś używa basha, zapewne zna domyślne działanie klawisza <tab> – umożliwia to wygodne dopełnienie długiej nazwy pliku.

Okazuje się, że tworząc odpowiednio spreparowaną nazwę pliku (z zaszytym poleceniem do wykonania), osoba która uruchomi autodopełnienie (naciśnie tab) na tym pliku – wykona nasz kod.

PoC? Proszę bardzo:

Albo np. tak:

Jak widać można umieścić na filesystemie długą nazwę pliku i na końcu dodać "`polecenie do wykonania`  i przy dopełnieniu – voila, kod się niewidocznie wykona.

Czy panikować? Z jednej strony bug został pierwotnie wprowadzony w 2015 roku (w repozytorium devel), i został włączony do wersji stable 4.4 (wydanej we wrześniu 2016 roku), z drugiej większość Linuksów na szczęście nie zdążyła udostępnić aż tak nowego basha w swoich repozytoriach. Choć np. Arch Linux – tak.

–ms

 

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



Komentarze

  1. barthalion

    Przelewam na dowolne piwo temu, kto udowodni, że bug można wykorzystać na Archu.

    Odpowiedz
  2. barthalion

    Albo na czymkolwiek. Jedyną większą dystrybucją z jakąkolwiek formą basha 4.4 jest OpenMandriva:

    GNU bash, version 4.4.0(1)-rc1 (x86_64-mandriva-linux-gnu)
    [root@3a609221db3e /]# touch ‚foobar”touch rak-sekurak'
    [root@3a609221db3e /]# mv fobash: bad substitution: no closing "
    ” in touch rak-sekurak
    obar\"
    touch\ rak-sekurak ^C

    Pliku nadal nie ma.

    Odpowiedz
  3. twostep

    w RHEL 7.3 stan na 2017.02.08:
    GNU bash, version 4.2.46

    Odpowiedz

Odpowiedz