"Allrequestsallowed.com" ... Спроба зламати?


11

У мене є багато спроб на моєму (маленькому, особистому і абсолютно неважливому) веб-сервері, і apache і fail2ban зазвичай роблять свою роботу правильно. Але є запис у журналі, який мене хвилює:

xx.yy.www.zzz - - [9/Jul/2011:12:42:15 +0100] "GET http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043YVMWTW_B%5CFAP HTTP/1.1" 200 432 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12"

Проблема полягає у тому, що відповідь був не 404 кодом, а 200. Чи це нормально? Мені це здається дивним, але мої знання в цій галузі (і багатьох інших), м'яко кажучи, обмежені.


1
Схоже , я не дозволяється розміщувати новий відповідь, але ми знайшли запис , як це в наших журналах, і ми були в змозі перевірити , що це не небезпечно, відтворюючи запит з завитком: curl -v http://allrequestsallowed.com/?PHPSESSID=5gh6ncjh00043YVMWTW_B%5CFAP -x www.example.com:80. Конфігурація за замовчуванням, схоже, повертає на нашу систему ubuntu сторінку "Ласкаво просимо на nginx" без змістовного вмісту. Отже, це відповідь у 200, але це проста сторінка, що займає загальну інформацію - ми фактично не звертаємось до запиту в іншому місці чи щось подібне.
Френк Фермер,

Відповіді:


12

По-перше, спереду, я не знаю, що намагається зробити зловмисник. Можливо, там є PHP-скрипт або PHP-версія, вразлива для якоїсь дивної атаки ідентифікатора сеансу, я не хочу. Вам, мабуть, нема про що турбуватися.

Ваш сервер поводився точно так, як очікувалося. 200 - очікуваний код у цій конкретній ситуації через те, як Apache інтерпретує передану йому URL-адресу.

По-перше, http://allrequestsallowed.comтрактується як звичайніший заголовок "Host:" ( зауважте, що я не думаю, що це вказано в RFC, і інші сервери можуть не інтерпретувати це так, як я помилявся, це вказано в RFC 2616 у розділі 5.1. 2, навіть незважаючи на те, що клієнти рідко використовують цю форму. Вибачте, мені потрібно виправити реалізацію HTTP-сервера, про який я писав назад ...).

Тепер, імовірно, у вас немає сайту під назвою "allrequestsallowed.com". Отже, що відбувається, коли Apache отримує Host:заголовок (або еквівалент) для імені хоста, яке він не розпізнає? Він вибирає перший віртуальний хост за замовчуванням. Це чітко визначена та задокументована поведінка для Apache. Отже, будь-який ваш перший віртуальний хост (або просто основна конфігурація сервера, якщо немає жодних vhosts), приймає на себе, незалежно від того, як він названий.

Тепер решта вказаної URL складається з двох частин - шлях /, та параметр GET ( ?PHPSESSID...біт).

Тепер шлях /повинен бути присутнім майже на кожному веб-сервері. У більшості випадків він відображає щось на кшталт index.htmlабо, можливо, index.phpсценарій, хоча ви, звичайно, можете перекрити будь-що з цього.

Якщо він відображається в статичний HTML-файл, абсолютно нічого незвичайного не відбувається - вміст файлу повертається, і це все, що параметр просто ігнорується. (Припустимо, що у вас не встановлені певні директиви про розширену конфігурацію, і ви майже напевно не працюєте.)

З іншого боку, якщо це якийсь сценарій, ця PHPSESSIDзмінна буде передана сценарію. Якщо сценарій насправді використовує цю змінну (у цьому конкретному випадку, ймовірно, лише PHP-скрипти, що використовують вбудовану сесію PHP, обробку сеансу), її поведінка залежатиме від вмісту.

По всій ймовірності, однак, навіть якщо /трапляється зіставляти скрипт PHP за допомогою сеансів, нічого чудового не відбудеться. Ідентифікатор сеансу, ймовірно, не буде існувати в будь-якому випадку і буде або проігнорований, або в сценарії з’явиться помилка.

У навряд чи випадку, коли ідентифікатор сеансу існує, ну зловмисник міг би захопити чужий сеанс. Це було б погано, але це насправді не є діркою в безпеці - отвір був би там, де зловмисник отримав інформацію про сеанс ідентифікатора (нюхання по бездротовій мережі є хорошим кандидатом, якщо ви не використовуєте HTTPS). Вони насправді не змогли б зробити нічого, чого не міг зробити той користувач, сеанс якого він був спочатку.

Редагувати: Крім того, "% 5C" всередині SESSIONID позначає символ зворотної косої риски. Це, мабуть, є тестом на атаку каталогів на хости Windows.


У мене були подібні запити 404, 500, 403 і 20x на моїх серверах, що працюють nginxабо lighttpd, і після відправлення IP-адрес / вихідних хостів до фірми з кібер-аналізу було підтверджено, що це спроби експлуатувати отвори в сервері, серед іншого . Подібні запити, як і ті, які були визначені ОП, різні хости. Ви хочете сказати, що їх слід повністю ігнорувати? Тому що якщо вони по-справжньому стурбовані, вони можуть заблокувати хоста (ів) у iptables.
Thomas Ward

@ Злий Фенікс: Хост у URL-адресі не є запитом, звідки надходить запит, це лише еквівалент заголовка "Хост:". Фактична IP-адреса клієнта, яку закрила ОП, може бути заблокована iptables, якщо він захоче, але, якщо він не переповнений запитами, це насправді не має значення. Просто те, що хтось намагається експлуатувати діру, не означає, що дірка присутня. Я адмініструю численні (Linux) сервери, які щодня записують безліч дивних запитів, призначених для експлуатації дірок - більшість з них - діри для Windows / IIS! Це просто сліпе сканування. Якщо не потрапить, він переходить до наступної IP-адреси.
Ніколас Найт

@The Зло Фенікс: Крім того, якщо отвір було присутнім, блокування IP - адреса, експлуатований він не буде робити один біт добра. Ваш сервер уже був би скомпрометований і все ще вразливий до тієї ж атаки з інших джерел - і джерел існує багато. Кожна система зомбі там (а їх багато мільйонів) є потенційним джерелом шкідливих сканувань.
Ніколас Лицар

Приємне і ретельне пояснення .... Дякую. Я затьмарив правопорушника, якщо він / вона ip-ego-surfes :). Мій / карта за замовчуванням apache "Це працює" (я знаю, як непрофесійно ... але я сказав, що це особисте, хаха). Тож я припускаю, що нічого не потрібно робити, якщо той самий IP не стане болем, і в такому випадку я заблокую його iptables (або навіть hosts.deny?). Знову дякую.
luri

1

У мене це запити дозволено ввійти в ip, який використовується як запис для всіх наших доменів паркування.

Я вважаю, що це ім'я хоста використовується в поєднанні з локальним файлом хоста "зловмисника", що вказує на цільового хоста.

Фактичний веб-сервер на 31.44.184.250 - це лише обробка зовнішніх запитів.

Моя думка: цілком нешкідливий. Не бачите для цього жодної додаткової вартості, за винятком речей, які ви можете виконати з будь-яким іншим підробленим доменним іменем у вашому файлі хоста

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.