PHPenetration Zadoxlik (antichat.ru) Хакер, номер #090, стр. 090-072-8 Ко всему вышесказанному Не забывай, что параметры могут быть переданы скрипту при помощи 4-х способов: GET, POST, COOKIE, SESSION. Первые три из них пользователь формирует сам. Информация сессии хранится на сервере и не может быть модифицирована пользователем, в то время как куки ты можешь спокойно изменять. Прелесть тут в том, что многие web-программисты почему-то относятся к кукисам, как к чему-то такому, что проверять надо менее строго, чем POST и GET (ну вроде того, что последние два можно задавать прямо в строке браузера или в формочке на сайте, а куки еще и «хрен знает, как ты подделаешь»), поэтому очень часто уязвимости можно встретить именно в параметрах, передаваемых куками. Это могут быть как XSS, SQL-injection, так и PHP-injection. Я рекомендую для поиска уязвимостей PHP-injection писать программку, которая бы сканировала все файлы движка и вынимала из них всяческие подозрительные вещи, например все то, что описано в статье. Все eval, строки регулярных выражений с модификатором «e», не говоря уже о include, require. Анализируется подобный материал потом достаточно быстро и просто. Пример такой программки опять же лежит на диске. На этой веселой ноте я ухожу за кулисы. А ты даже и не думай все это проделывать на практике: закон бдит! WARNING Не вздумай проделывать наши опыты на практике! CD Все скрипты, которые были использованы или упомянуты в статье, ты найдешь на нашем диске. INFO Вместо функции include в скрипте могут фигурировать схожие include_once, require, require_once, которые также могут быть задействованы в описанных уязвимостях. WARNING Внедрение кода, расположенного на внешнем сервере, может быть произведено только при соответствующей конфигурации PHP. |