Apache - один из самых надежных программных проектов на планете. Найти уязвимость в HTTPD Apache было бы немалым подвигом, и я рекомендую порезать себе зубы на более легкой добыче. Для сравнения, чаще встречаются уязвимости в других HTTPD, таких как этот в Nginx , которые я видел сегодня (без шуток). Были и другие уязвимости раскрытия исходного кода, которые очень похожи, я бы посмотрел на это , а здесь еще один . lhttpd был оставлен на sf.net почти десять лет, и есть известные переполнения буфера, которые влияют на него, что делает его забавным приложением для тестирования.
При атаке на проект вы должны посмотреть, какие уязвимости были обнаружены в прошлом. Вполне вероятно, что программисты будут снова и снова повторять одни и те же ошибки, и часто появляются шаблоны. Следуя этим шаблонам, вы можете найти больше недостатков. Вам следует попробовать поискать в базах данных уязвимых мест, таких как Поиск Nist для CVE . Одна вещь, которую вы увидите, это то, что модули apache чаще всего скомпрометированы.
Проект, подобный Apache, был сильно размыт. Существуют размытые рамки, такие как Peach . Персик помогает в размышлениях во многих отношениях, один из способов, которым он может вам помочь, - это предоставить вам некоторые неприятные тестовые данные для работы. Fuzzing - не очень хороший подход для зрелых проектов, если вы пойдете по этому пути, я нацелусь на apache modules с как можно меньшим количеством загрузок. (Предупреждающие проекты с действительно низкими загрузками могут быть повреждены или их трудно установить.)
Когда компании беспокоятся о безопасности, они часто платят большие деньги за инструмент автоматического анализа источников, такой как Coverity. Министерство внутренней безопасности выделило Coverity кучу денег на тестирование проектов с открытым исходным кодом, и Apache - один из них . Я могу сказать вам из первых рук, что я обнаружил переполнение буфера с размытием, что Coverity не уловил. Coverity и другие инструменты анализа исходного кода, такие как Rats с открытым исходным кодом , будут производить много ложных срабатываний и ложных отрицаний, но они помогают сузить проблемы, которые влияют на базу кода.
(Когда я впервые запустил RATS на ядре Linux, я чуть не упал со стула, потому что на моем экране были перечислены тысячи вызовов strcpy () и strcat (), но когда я копался в коде, все вызовы были связаны с работой с статичный текст, который безопасен.)
Уязвимость повторно ищет развитие эксплойта очень весело . Я рекомендую использовать приложения PHP / MySQL и изучить Whitebox . Этот проект важен, потому что он показывает, что существуют реальные уязвимости, которые нельзя найти, если вы не прочитаете код построчно вручную. У него также есть реальные приложения (блог и магазин), которые очень уязвимы для атак. На самом деле оба эти приложения были заброшены из-за проблем с безопасностью. Фаззер веб-приложений, такой как Wapiti или acuentix, изнасилует эти приложения и подобные им. Есть трюк с блогом. Новая установка не очень уязвима. Вам нужно немного использовать приложение, попробовать войти в систему как администратор, создать запись в блоге и затем отсканировать ее. При тестировании приложения веб-приложения на SQL-инъекцию убедитесь, что включен отчет об ошибках. В php вы можете установить display_errors=On
в вашем php.ini.
Удачи!