Firebird - бесплатная система управления базами данных с открытым кодом. Спецтиально сконструированный пакет позволяет аварийно завершить работу сервера и выполнить произвольный код.После пары dos-пакетов сервер отказывается запускать.Рекоммендуется отправлять несколько пакетов сразу чтобы защитный механизм не успевал перезапускать сервер. Затронутые версии * Firebird SQL 1.0.3 and before. * Firebird SQL 1.5.5 and before. * Firebird SQL 2.0.3 and before. * Firebird SQL 2.1.0 Beta 2 and before. Незатронутые версии * Firebird SQL 1.5.6 (to be released) * Firebird SQL 2.0.4 (to be released) * Firebird SQL 2.1.0 RC1 Техническое описание Нарушение памяти происходит когда парсер получает пакет с неправильным форматом данных. Подверженны переполнению пакеты * op_receive * op_start * op_start_and_receive * op_send * op_start_and_send * op_start_send_and_receive Уязвимый код PHP: * src/remote/protocol.cpp:417 * * MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_request)); * MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_incarnation)); * MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_transaction)); * MAP(xdr_short, reinterpret_cast<SSHORT&>(data->p_data_message_number)); * return xdr_request(xdrs, data->p_data_request, * data->p_data_message_number, * data->p_data_incarnation) ? P_TRUE(xdrs, p) : P_FALSE(xdrs, p); PHP: 005637D0 8B4424 08 MOV EAX,DWORD PTR SS:[ESP+8] 005637D4 0FB700 MOVZX EAX,WORD PTR DS:[EAX] 005637D7 83EC 50 SUB ESP,50 005637DA 56 PUSH ESI 005637DB 8BF1 MOV ESI,ECX 005637DD 8B8E AC000000 MOV ECX,DWORD PTR DS:[ESI+AC] 005637E3 3B41 08 CMP EAX,DWORD PTR DS:[ECX+8] <---- CRASH HERE Firebird Connect Packet PHP: * 0x0000 00 00 00 00 00 02 00 00-00 00 00 01 08 00 45 00 ..............E. * 0x0010 00 BC 00 00 00 00 40 06-00 25 C0 A8 7C 63 C0 A8 .ј....@..%АЁ|cАЁ * 0x0020 7C 63 0B EA 0E 94 00 00-00 01 00 00 00 01 50 10 |c.к.”........P. * 0x0030 40 00 00 00 00 00 00 00-00 01 00 00 00 13 00 00 @............... * 0x0040 00 02 00 00 00 1D 00 00-00 3C 43 3A 5C 50 72 6F .........<C:\Pro * 0x0050 67 72 61 6D 20 46 69 6C-65 73 5C 46 69 72 65 62 gram Files\Fireb * 0x0060 69 72 64 5C 46 69 72 65-62 69 72 64 5F 31 5F 35 ird\Firebird_1_5 * 0x0070 5C 65 78 61 6D 70 6C 65-73 5C 45 4D 50 4C 4F 59 \examples\EMPLOY * 0x0080 45 45 2E 66 64 62 00 00-00 02 00 00 00 13 01 04 EE.fdb.......... * 0x0090 52 4F 4F 54 04 09 75 6E-64 65 72 77 68 61 74 06 ROOT..underwhat. * 0x00A0 00 00 00 00 00 08 00 00-00 01 00 00 00 02 00 00 ................ * 0x00B0 00 03 00 00 00 02 00 00-00 0A 00 00 00 01 00 00 ................ * 0x00C0 00 02 00 00 00 03 00 00-00 04 .......... Firebird Login Packet PHP: * 0x0000 00 00 00 00 00 02 00 00-00 00 00 01 08 00 45 00 ..............E. * 0x0010 00 94 00 00 6C 6C 40 06-93 E0 C0 A8 7C 63 C0 A8 .”..ll@.“аАЁ|cАЁ * 0x0020 7C 63 0B EA 0E 94 00 00-00 95 00 00 00 11 50 10 |c.к.”...•....P. * 0x0030 40 00 00 00 00 00 00 00-00 13 00 00 00 00 00 00 @............... * 0x0040 00 3C 43 3A 5C 50 72 6F-67 72 61 6D 20 46 69 6C .<C:\Program Fil * 0x0050 65 73 5C 46 69 72 65 62-69 72 64 5C 46 69 72 65 es\Firebird\Fire * 0x0060 62 69 72 64 5F 31 5F 35-5C 65 78 61 6D 70 6C 65 bird_1_5\example * 0x0070 73 5C 45 4D 50 4C 4F 59-45 45 2E 66 64 62 00 00 s\EMPLOYEE.fdb.. * 0x0080 00 1E 01 1C 06 53 59 53-44 42 41 1E 0B 51 50 33 .....SYSDBA..QP3 * 0x0090 4C 4D 5A 2F 4D 4A 68 2E-3A 04 00 00 00 00 3E 00 LMZ/MJh.:.....>. * 0x00A0 00 00 pastebin.x3k.ru/235