Иллюстрированный самоучитель по Secure Web


Несоответствие сценариев требованиям безопасности: взлом при отсутствии проверки ввода - часть 2


Поиск уязвимых серверов в сети представляется простой задачей. Посмотрим, как можно обнаружить компоненты MDAC службы RDS. С помощью утилиты netcat и языка Perl можно просканировать подсети в поисках признаков уязвимого сервера — наличия динамически подключаемой библиотеки msadcs.dll. Если в результате обработки HTML-запроса будет получена строка appiication/x-varg, значит, высока вероятность того (хотя и не на 100%), что данная система уязвима. Ниже для примера приведен код на языке Perl, с помощью которого можно обнаружить данный изъян.

#!/usr/bin/perl

if ($|ARGV < 0) {

print "Ошибка в синтаксиме - попробуйте eщe pas.";

print ": mdac.pl 10.1.2.3-255";}

doit($ARGV[0]); foreach $item (@hosts)

{ portscan($item); }

close OUTFILE;

sub doit { $line = $_[0];

if ($line!=/#/) {

if ($line=~/-/) {

Stmp = split/-/, $line;

Ship = split//, $tmp[0];

@eip = split//, $tmp[lj;

} else

{

@bip = split//, $line;

@eip = split//, $line; }

$al = $bip[0];

$bl = $bip[l];

$cl = $bip[2];

$dl = $bip[3];

Snum = @eip; if ($num==l)

{ $a2 = $bip[0]

$b2 = $bip[l]

$c2 = $bip[2]

$d2 = $eip[0]

} elsif

($num==2)

{$a2 = $bip[0]

$b2 = $bip[l]

$c2 = $eip[0]

$d2 = $eip[l] }

elsif

($num==3)

{

$a2 = $bip[0]

$b2 = $eip[0]

$c2 = $eip[l]

$d2 = $eip[2]

} elsif

($num== )

{

$a2 = $eip[0]

$b2 '-= $eip[l]

$c2 = $eip[2]

$d2 = $eip[3] }

# Ha базк IP-адреса подсети (класс A, B, C)задаем

# корректные значения переменных.

check_end(); $aend=$a2;

# Создание массива.

while

($al < $aend)

( while ($bl < $bend)

{ while ($cl < $cend)

{ while ($dl < Sdend) {

push (@hosts, "$al.$bl.$cl.$dl">;

$dl+=l;

check_end();

}

$cl+=l;

$dl=0;

}

$bl+=l;

$cl=0;

}

$al+=l; $bl=0; } } }

sub portscan ( my $target = $_[0];

print "Сканируется порт $target."; local $/;

open(SCAN,"nc -vzn -w 2 $target 80 2»

&1I");

# Порт открыт

$result = <SCAN>;

if ($result=~/open/)

{

print "\tПорт 80 Ha $target открыт . \n";



Начало  Назад  Вперед



Книжный магазин