Вопрос связан со следующим: у меня на машине крутится Апач, версии 2.2.22, его настройка практически дефолтная. Виден из нета, спец правил для .htaccess не составлял.
Сегодня заглянул в логи доступа, заметил там несколько интересных строк, а именно:
(здесь был IP2) — - [21/Apr/2012:04:15:47 +0000] "\x17\xb8>\xee\x19\x0c\xdd\xe2\x05\xc3\xcc\v\x81\x9f\xc9\b\xd08\x06\x1a\xa5\x8d>\xf4N\xcb\x03\x86\xdf\xb9\x87\x02\r\xdb\xee\x02\xda\xb1\x1f\x80\x11N6\xd7E\xed\xee\xd5" 400 226
(здесь был IP3) — - [21/Apr/2012:06:51:07 +0000] ";\xaf\x7f]\x19\xf0\xdd\xcf\xf8\x04@$\xb1" 200 4892
(здесь был IP4) — - [21/Apr/2012:07:13:04 +0000] "-" 408
В логах ошибок сопоставил по времени были следующие записи:
[Sat Apr 21 03:47:24 2012] [error] [client (здесь был IP1)] request failed: error reading the headers
[Sat Apr 21 04:15:55 2012] [error] [client (здесь был IP2)] request failed: error reading the headers
Теперь вопрос — что это были за запросы? Я так понимаю это эксплоиты, код, который пытались запихнуть в заголовки?
Причем заметил, что если первые 2 IP совпадают по времени в каждом из логов, то третий, обозначенный выше как IP3 ошибки не вызвал и был успешно принят.
Ну и параллельно, чем чреваты подобные «игры», следует ли предпринимать какие-то действия (возможно, соответствующим образом настроить Апач) или забить и просто держать Апачь «up-to-date»?
Да просто боты бегают по сети, перебирают диапазоны ip-адресов и перебирают возможные уязвимости… Если у вас софт со всеми нужными заплатками — то забейте и все…
На моем сервере толпы таких бегают… И за 5 лет — ничего…
Какие ещё слеши в обратом порядке? \xHH — это hex-представление байта. Вебсерверу передаются бинарные данные, поэтому в логах нет метода и выводится их hex-представление.
Только что попробовал телнетом передать себе какую-нибудь белиберду, вот что появилось в логах:
127.0.0.1 — - [22/Apr/2012:07:14:33 +0000] "\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd\xef\xbf\xbd" 501 299 "-" "-"
Хоть внешне это и похоже на атаку типа buffer overflow, я сомневаюсь что это эксплоит. Возможно эти запросы вообще не предназначены для вебсервера, но по какой-то причине они приходят именно вам на 80 порт.
Правда смущает что статусы ответа разные. Кстати размер главной страницы случайно не 4892 байта?
ну так перейдите по этой урле да посмотрите
«сайт.ру/;\xaf\x7f]\x19\xf0\xdd\xcf\xf8\x04@$\xb1»
кстати это фигня боты подбирающие пароли к цмскам жесть.
ибо на время разработки ставится что-то простое, для простоты, и вот у знакомого в битрикс даже влили какоую-то хренюшку троянскую :))
А так понял эта строка не есть URL в принципе, тут даже слеши находятся в обратном порядке, как вы можете заметить. Плюс, в логах при даже подобной подстановке четко фиксируется: GET запрос кривой, файла не найдено. Тогда как при оригинальных записях в логах нет способа передачи данных (POST/GET), просто время и эта строка, т.е. как будто просто кто-то стучался в гости, без конкретного запроса содержимого серва.
Посмотрел в нете, в частности, подобных тем много на том же Stackoverflow, люди тоже гадали что за запросы в логах, пришли к мнению что это действительно атака, шеллкод, если быть точнее.
Через телнет? Хм, об этом не подумал, строчку вставлял в браузер, который все бэкслеши (\) переделал на просто слеши (/) а в логах зафиксировался GET запрос, я это имел в виду когда говорил про порядо (пардон, не выспался слегка, поэтому не точно выразился).
На счет главной, дйствительно есть эта цифра, только что посмотрел в свойствах: 4.77 KB (4,892 bytes). Что это и как это связано с этими кривыми запросами?
Браузер отправит валидный HTTP-запрос, с методом, заголовками и т.д. Вам же приходят «сырые» двоичные данные на 80 порт, не по HTTP. Почему вместо 501 Not Implemented сервер отвечает 400 или даже 200 для меня загадка, возможно это особенности настроек определённого апача. В любом случае, не думаю что это эксплоит.
Настроек Апача никаких не производил. фактически, все его настройки свелись к связке с PHP и определением каталога где лежат все файлы для разработки.
Только пока не понял, а что не так с размером? И как вы догаались что размер 4,892 байта?
Ну так в логах же для 200 статуса длина ответа 4892. По крайней мере теперь можно быть уверенным, что сервер вернул именно главную страницу.
Можете неткатом попробовать воспроизвести запрос (возможно в конец нужно добавить перевод строки — \x0a):