[Web-hack] Что делать, когда не знаешь что делать?

Иногда бывает так, что попадаешь в тупик при выполнении задания на веб-хак, когда явной уязвимости не видно и непонятно за что зацепиться… Эта тема составлена на основе анализа заданий с прошедших CTF и создана, чтобы что-то не «забыть» в таких ситуациях. Итак…

Что делать, когда не знаешь что делать? 🙂

1. Посмотри исходники HTML всех доступных страниц и вспомогательных файлов на сервере (css, js и т.п.).
Очень часто в них намеренно скрывают какую-либо информацию (например, в HTML-комментах).

2. Проверь формы аутентификации на предмет легкоугадываемых логинов/паролей.
Очень часто могут подойти комбинации типа «admin/admin»,»guest/guest»,»test/test» и т.п. Можно для этих целей воспользоваться каким-либо брутом или сканером безопасности, в которых зачастую уже есть подобные словарики.

3. Проверь наличие исходников страницы.
Во многих заданиях, если постараться, можно обнаружить исходники страниц и скриптов. Варианты бывают такие:
— расширения вида .phps, .bak, .txt, .zip
— бекап файл Linux (например, http://server.com/index.php~)
— временный файл VIM *.swp (например, http://server.com/index.php.swp)
— иногда могут присутствовать скрытые директории типа src или backup. Сканер безопасности может помочь их найти.

4. Проверь наличие файла robots.txt и поищи скрытые директории.
В robots.txt может содержаться информация о скрытых директориях. Скрытые директории также неплохо ищут сканеры безопасности — в них уже имеются встроенные словарики.

5. Проверь наличие файлов .htaccess и .htpasswd и доступа к ним.
Иногда к этим файлам намеренно выставляютя неверные права доступа.

6. Проверь права доступа к /cgi-bin.
Иногда намеренно разрешают листинг этой директории. Будет полезно таже проверить возможность листинга других известных директорий на сервере (например, /images) — может быть в них также удастся найти полезную информацию.

7. Используй сниффер для исследования ответов сервера.
Иногда, с помощью сниффера можно найти информацию, которую сложно (или невозможно) обнаружить через браузер (например, javascript, который изменяет содержимое страницы или её аттрибуты). В любом случае будет полезно посмотреть HTTP-заголовки сервера и структуру cookie.

8. Попробуй фаззинг HTTP-заголовков, посылаемых браузером (включая cookie).
Уязвимость может быть заложена в процедурах анализа HTTP-заголовков клиентов. Например, очень часто можно встретить SQL-injection в Сookie или в заголовках User-agent, Referer и др.

9. Исследуй cookie.
В случае наличия cookie, важно разобраться откуда они берутся и что означают. Часто в них скрыта полезная информация или их возможно подменить.

10. Попробуй использовать различные браузеры (IE, Firefox, Chrome, Opera и др.)
Во-первых, заголовок User-agent может иметь значение в рамках задания. В этом случае вместо использования другого браузера, иногда удобнее просто этот заголовок подменить.
Во-вторых, в задании на веб-сервере может использоваться технология, которую поддерживают не все браузеры (например, какие-либо устаревшие/экспериментальные протоколы, ActiveX, Java и т.п.)

11. Используй автоматизированные средства для поиска уязвимостей.
Можно использовать средства как для поиска уязвимостей в исходниках (например, RIPS для поиска уязвимостей в PHP-коде), так и для поиска уязвимостей online (различные web-сканеры — Acunetix Web Vulnerability Scanner, sqlmap, nikto и т.п.)

1 Comment

 Add your comment
  1. Руководство по Web Penetration Testing:
    http://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf

Leave a Comment

Your email address will not be published.

Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.