V-zlom.ru » Статьи » Как написать CGI сканер

Как написать CGI сканер

ТЕОРИЯ:
Теория CGI сканирования до безобразия проста: на сервер посылается запрос содержащий обращение к скрипту, по пришедшему ответу делается вывод о наличии скрипта на сервере. Процедура повторяется до тех пор пока не надоест.
Практическая реализация будет произвотиться в Delphi (у меня стоит 3.0) При помощи компоненты TClientSocket.
Для этого нам потребуется еще небольшое знание HTTP протокола, в частности как выглядит запрос на документ, и ответ сервера.
Запрос выглядит примерно так (такой запрос формирует IE5):

GET /xxxx.xxx HTTP/1.1 0 then Delete(TmpStr,i,Length(TmpStr)-i);
//выводим остаток в мемо
Memo1.Lines.Add(TmpStr);
//закрываем сокет
socket.Close;
end;

Вот и готово. Теперь осталось в Edit1 написать имя сервера, а в Edit2 порт в данном случае 80 и нажать батон1. Если все нормально то в Memo1 будет текст примерного содержания:
-----------
Bug:htmla/htmla.htm
HTTP/1.0 200 OK
Server: Microsoft-PWS-95/2.0
Date: Fri, 06 Jul 2001 14:21:00 GMT
Content-Type: text/html
Accept-Ranges: bytes
Last-Modified: Tue, 12 Nov 1996 06:12:00 GMT
Content-Length: 3418
-----------
Bug:htmlaScripts/htmla.dll?http/serv
HTTP/1.0 401 Нет доступа
Server: Microsoft-PWS-95/2.0
Date: Fri, 06 Jul 2001 14:21:00 GMT
WWW-Authenticate: NTLM
WWW-Authenticate: NTLM
Access to this resource has been denied.
и т.д. и т.п.

Все испытания проводились на Personal Web Server (это я на случай если данные ответов сервера будут отличаться от приведенных). ВЫВОДЫ:
В результате проделанной работы мы ознакомились с теорией CGI сканирования и основами HTTP протокола, научились использовать TClientSocket для работы с протоколом на низком уровне.
В качестве домашего задания могу подкинуть идею переделки этого кода для работы через прокси сервер (для тех кто не хочет оставлять следы на сервере).
ПОСТ СКРИПТУМ:

  • Автор: makar
  • Комментарии: 0
  • Просмотры: 1657
0

Добавить комментарий

Вы не авторизованы и вам запрещено писать комментарии. Для расширенных возможностей зарегистрируйтесь!