Средства взлома Web-приложений Hacking Tools
Wget
Последняя программа, которую мы рассмотрим, похожа на предыдущие. Wget - утилита командной строки, которая в основном копирует содержимое Web-сайтов. Она запускается для стартовой страницы и затем, в соответствии со ссылками, исследует каждую страницу Web-сайта. Когда кто-либо проводит аудит безопасности Web-приложения, одним из первых шагов является перемещение между разными страницами приложения. Для спаммеров целью может быть поиск адресов электронной почты. Другие ищут комментарии в программах, которые могут содержать пароли, выражения SQL, или другие интересные штучки. И, наконец, локальная копия содержимого Web-приложения дает возможность быстрого поиска такой информации в больших сайтах.
С точки зрения администраторов, у Wget может быть и другое применение. Например, создание зеркал для сайтов с высоким трафиком. Администраторы зеркал многих Web-сайтов (таких как www.samba.org и www.kernel.org) используют wget или аналогичные утилиты для воспроизведения содержимого мастер-сервера на альтернативных серверах. Они делают это с целью сокращения загрузки и разнесения Web-сайтов по разным географическим регионам.
Реализация
Поскольку основной функцией wget является загрузка содержимого Web-сайта, то использовать программу просто. Для рекурсивного просмотра сайта используйте параметр -r.
$ wget -r www.victim.com ...(continues for entire site)...
Параметр -r или -recursive указывает wget на необходимость просматривать каждую ссылку на странице. Ниже мы создаем директорию www.victim.com и размещаем в этой директории все HTML-файлы и директории, которые wget обнаружит на этом сайте. Основное преимущество wget в том, что он просматривает все возможные ссылки. Таким образом, программа загружает вывод всех аргументов, которые приложение пересылает на страницу. Например, файл viewer.asp может быть загружен четырежды.
- viewer.asp@ID=555
- viewer.asp@ID=7
- viewer.asp@ID=42
- viewer.asp@ID=23
Символ @ обозначает символ ? в реальном URL. ID - первый аргумент (параметр), передаваемый в файл viewer.asp. Некоторые сайты могут потребовать более сложных возможностей, таких как поддержка прокси и HTTP Basic Authentication. Сайты, защищенные с помощью Basic Authentication, можно просматривать следующим способом.
[root@meddle]# wget -r --http-user:dwayne --http-pass:woodelf \ > https://www.victim.com/secure/ ...continues for entire site...
Сайты, которые базируются на использовании cookies для поддержки сессий или аутентификации, также можно просматривать с использованием wget. Создайте cookie -файл, который содержит набор достоверных переменных о пользовательской сессии. Для этого необходимо иметь возможность получить доступ к сайту, чтобы собрать значения переменных. Затем используйте параметр -load-cookies, чтобы указать wget на необходимость представиться пользователем, информация о котором хранится в переменных cookie.
$ wget --load-cookies=cookies.txt \ > -r https://www.victim.com/secure/menu.asp
Wget может поддерживать сессии и сохранять значения cookie-переменных с помощью соответственно названного параметра -cookies. Это параметр логического типа, и вы можете либо выключить его (по умолчанию) или включить.
$ wget --load-cookies=cookies.txt -cookies=on \ > -r https://www.victim.com/secure/menu.asp
Параметры --http-user и --http-passwd позволяют wget получить доступ к Web-приложениям, которые применяют HTTP Basic Authentication. Установите значения в командной строке и следите за работой wget.
$ wget --http-user=guest --http-passwd=no1knows \ > -r https://www.victim.com/maillist/index.html