Security Bug w ftpd-BSD ???
Robert R. Wal
rrw w hell.pl
Śro, 22 Sie 2001, 23:08:45 CEST
On 01.08.22 Marcin Chojnowski pressed the following keys:
> Loguje sie, jako anonymous (ftp) wchodze do katalogu.
>
> OK jestem mtam
>
> W tym czasie (na innej konsoli) przenoszę ten katalog (jako root) w
> inne miejsce
>
> Wracam teraz do sesji ftp
> robię ls
>
> ftpd nadal mi wyświetla jakby ten katalog istniał ( a nie ma ani
> plików ani katalogu). Normalnie powinien krzyczeć path not found
> albo coś.
>
> No i teraz robię cd .. i ftpd przenosi mnie do katalogu do KTÓREGO
> PRZENIOSŁEM TEN KATALOG z drzewa FTP.
>
> I normalnie można śmigać i grzebać po plikach.
>
> Ktoś ma tak samo ???
Siedzi baca na gałęzi i piłuje tę gałąź. Przechodzi turysta i krzyczy
,,Baco, a to spadniecie!''. ,,Iiiitam'', powiedział baca i dalej piłować
tę gałąź. Po pewnym czasie traszk, jebut, baca rozciera obolałe kości i
pod nosem bełkocze: ,,Prorok jakiś, cycuś...?''
A poważniej:
ftpd (jak każdy program) ma swój katalog bieżący, który uzyskać można
przez użycie funkcji getcwd(3), a zmienić przez chdir(2). Teraz uwaga:
tenże katalog nie jest pamiętany poprzez jego nazwę czy umiejscowienie w
filesystemie, tylko przez jego numer i-node'a.
I teraz jeśli przesuniesz katalog w inne miejsce, to zmienia się jego
nazwa (ścieżka do niego prowadząca) ale nie zmienia się numer i-node'a.
Możnaby to obejść, implementując eftepowe polecenie CWD jako chdir(2) od
roota, składając ścieżkę z pamiętanego, a nie odczytanego currdir, ale
niepotrzebnie komplikowałoby to sprawę, nie dając nic wzamian -- zawsze
może się ktoś sprzeczać, że zrobił:
mv ~ftp /home
a ftpd po poleceniu ,,CWD /'' WYSZEDŁ Z CHROOTA, bo wyświetlił zawartość
katalogu, który nie jest już w /var/spool/ftpd tylko w /home/ftpd (tylko
przykład).
Administrator, swoim bezmyślnym działaniem może otworzyć tysiace innych
dziur w systemie i nie da się tego w żaden sposób załatać.
Robert
--
Bastard Operator From 149.156.96.35
Więcej informacji o liście dyskusyjnej pld-devel-pl