Где я могу найти демонстрацию переполнения буфера? - PullRequest
1 голос
/ 20 мая 2010

Есть сайт или есть простой способ его создания, который демонстрирует, что может случиться с переполнением буфера? Это в контексте веб-приложения.

Ответы [ 2 ]

1 голос
/ 20 мая 2010

Первый вопрос ... какой веб-сервер или библиотека? IIS-6 работает интерпретатор сценариев ASP? ASP.NET за IIS-7? Apache Tomcat? Какая-то библиотека, например HTTPServer в Poco?

Чтобы использовать переполнение буфера, вы должны сначала найти определенное место в приложении, где может произойти переполнение, а затем выяснить, какие именно байты должны быть отправлены для перезаписи памяти правильными байтами, чтобы выбежать в стек, а затем выполнить машинный код, который вы отправили в переполнении (потому что вы переписали стек).

http://en.wikipedia.org/wiki/Buffer_overflow

http://seclists.org/fulldisclosure/2005/Apr/412

http://www.microsoft.com/technet/security/bulletin/MS06-034.mspx

http://www.owasp.org/index.php/Buffer_Overflow

http://www.windowsecurity.com/articles/Analysis_of_Buffer_Overflow_Attacks.html

Поднимите огонь, но я бы сказал, что любая кодовая база достаточного размера содержит потенциально уязвимые переполнения буфера независимо от среды выполнения или исходного языка. Конечно, некоторые языки и платформы позволяют разработчикам приложений «стрелять себе в ногу» легче, чем другие, но все это сводится к индивидуальному усердию, сложности проекта, использованию стороннего кода, а также всегда есть эксплойты для базовых реализаций.

Переполнение буфера здесь, чтобы остаться, это всего лишь вопрос уменьшения воздействия с помощью безопасных методов программирования и тщательного мониторинга новых эксплойтов, поскольку они обнаружены для управления риском.

Отличным примером является то, что для веб-приложения есть вероятность переполнения в сетевых реализациях всего оборудования и приложений, обрабатывающих доставку ваших байтов через Интернет.

Рассмотрим различие между клиентом, пытающимся сломать сервер, и одним клиентом, пытающимся покорить других клиентов, обращающихся к определенному серверу?

Помимо простых переполнений в стиле "C", когда разработчик не следовал правилам безопасного программирования, существуют скрытые драгоценные камни, такие как целочисленные переполнения.

Даже если известно, что определенная хост-среда сервера очень стабильна, она, без сомнения, использует базу данных и другие средства операционной системы, которые сами по себе могут быть использованы через веб-сервер.

Когда вы приступаете прямо к этому, ничто не является безопасным, и на самом деле это просто вопрос сложности.

Единственный способ обеспечить полную безопасность конкретного приложения или сервера - это тщательный мониторинг, поэтому проблемы могут быть исправлены при обнаружении сомнительного поведения. Я очень сомневаюсь, что Walmart, FedEx или любая другая крупная корпорация с радостью сообщат о нарушениях. Вместо этого они следят, исправляют и двигаются дальше.

Можно даже сказать, что SQL-инъекция является абстрактной формой переполнения буфера, но вы просто выбираете, где вы хотите, чтобы буфер заканчивался, используя определенные символы, а затем предоставляете код, который вы хотите выполнить в нужном месте.

0 голосов
/ 20 мая 2010

Они имеют тенденцию не встречаться в веб-приложениях. Codelab веб-приложения Google использует и защищает короткий раздел, но не демонстрирует его:

Эта кодовая метка не охватывает уязвимости переполнения, поскольку Jarlsberg написан на Python и поэтому не уязвим для типичных проблем переполнения буфера и целых чисел. Python не позволит вам читать или писать за пределами массива, а целые числа не могут переполняться. В то время как программы на C и C ++, как правило, известны для выявления этих уязвимостей, другие языки не защищены. Например, хотя Java была разработана для предотвращения переполнения буфера, она молча игнорирует целочисленное переполнение.

Это зависит от того, какой язык вы используете, возможно ли переполнение буфера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...