SecureIIS, пожалуй, самая лучшая программа на сегодняшний день для защиты IIS 4.0 - 5.0 от внешних вторжений, которая защищает сервер от всех известных и неизвестных атак. В эту субботу Alliance Security Labs нашла в данном продукте несколько пробелов в защите, причем в разных местах.
Во-первых, в SecureIIS есть возможность фильтра по ключевым словам, используя которые можно получить доступ к серверу. Например, слово "admin" отфильтруется сервером, но если написать "%41DMIN", SecureIIS его пропустит. Так c помощью ниже написанного скрипта можно передать слово admin в качестве параметра, даже если он прописан в SecureIIS:
GET /whatever.script?user=%41DMIN HTTP/1.0
And:
POST /whatever.script HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
user=ADMIN
Во-вторых, Directory traversal - в некоторых ситуациях различные символы могут быть использованы для получения доступа в корневой каталог сервера и доступа к файловой системе. При проверке этих запросов SecureIIS не декодирует возможные символы. Т.е. если мы будем использовать %2e вместо точки, а %2f вместо слеша, то атакующий может воспользоваться атакой типа Directory traversal, и Secure IIS не отклонит ее.
Например используя следующий код:
GET /whatever.script?file=/%2e%2e/%2e%2e/boot.ini HTTP/1.0
And:
POST /whatever.script HTTP/1.0
Content-Type: application/x-www-form-urlencoded
Content-Length: 20
page=/../../boot.ini
В третьих это переполнение буфера - это когда атакующий посредством длинных заголовков в http запросах, которые могут вызвать остановку IIS и множество других неприятных последствий. Например
SecureIIS фильтрует когда максимальная длина HHTP заголовков превышает 256 байт. Но если один сайт выполнит 10 запросов, каждый из которых меньше положенных 256 байт, SecureIIS их пропустит, например:
GET / HTTP/1.0
Host: [500 х (random a-z charachers)]
Также замечено переполнение буфера в SecureIIS при большом запросе, состоящего
из нескольких тысяч символов.