DDoS - непонятный формат IP-адреса

12
fliger
На сайте с 17.09.2015
Offline
106
1129

Коллеги, второй час уроды из Украины DDoSят сайт. IP-адрес 192.162.113.42 заблокировал. Но в логах проскакивают непонятные IP-адреса, на которые отдается код 200:

--, 192.162.113.42 470 2458 -1\" OR 3+863-863-1=0+0+0+1 --, 192.162.113.42 - - [26/Apr/2018:17:29:01 +0300] "GET /fitness/ HTTP/1.0" 200 2009

2458 '\", 192.162.113.42 - - [26/Apr/2018:17:29:05 +0300] "GET /fitness/ HTTP/1.0" 200 2009

2458 1'\", 192.162.113.42 - - [26/Apr/2018:17:29:12 +0300] "GET /fitness/ HTTP/1.0" 200 2009

9876 \xbf'\xbf\", 192.162.113.42 - - [26/Apr/2018:17:22:13 +0300] "GET /news/ HTTP/1.0" 200 9427

--, 192.162.113.42 473 2486 -1\" OR 2+627-627-1=0+0+0+1 --, 192.162.113.42 - - [26/Apr/2018:17:26:43 +0300] "GET /partners/ HTTP/1.0" 200 2037

Не подскажете, что это за хрень и как ее заблокировать через .htaccess?

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#1

nginx или apache лог такой?

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
fliger
На сайте с 17.09.2015
Offline
106
#2

Это кусок записей из лога Apache (виртуальный хостинг). В нормальном виде записи выглядят так:

192.162.113.42 - - [26/Apr/2018:17:58:41 +0300] "GET /phobos/ HTTP/1.0" 403 24

На уровне PHP я эту хрень заблокировал:

if (substr($_SERVER['REMOTE_ADDR'], -14) == '192.162.113.42') {

header($_SERVER['SERVER_PROTOCOL'].' 404 Not Found', true, 404);

exit();

}

Но хотелось бы понять, что за формат IP-адреса (то, что выделено жирным шрифтом). Почему-то .htaccess на него ругается, если регуляркой через SetEnvIf Remote_Addr записывать (PHP всю строку IP-адреса, т.е. все, что в нее вставлено, читает нормально).

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#3

а точно нет nginx перед этим?

Подмена IP я такого не слышал. apache какой версии?

fliger
На сайте с 17.09.2015
Offline
106
#4
LEOnidUKG:
а точно нет nginx перед этим?

Подмена IP я такого не слышал. apache какой версии?

На хостинге перед Apache 2.0 стоит nginx.

В основном все строки в логе с привычной записью IP в начале строки:

192.162.113.42

Но попадаются строки с абракадаброй.

юни
На сайте с 01.11.2005
Offline
901
#5
fliger:
Но попадаются строки с абракадаброй.

Похоже на какой-то баг с записью. Хостера не спрашивали, что это может быть?

https://a-parser.com/ - парсер для профессионалов SEO, маркетологов, арбитражников и SaaS, https://searchengines.guru/ru/forum/944108 - прокси-сервис на базе операторов домашнего интернета, сотни тысяч IP-адресов, канал от 20 Мбит
fliger
На сайте с 17.09.2015
Offline
106
#6
юни:
Похоже на какой-то баг с записью. Хостера не спрашивали, что это может быть?

Нет, еще не спрашивал.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#7

Значит админ не верно настроил проксирование в плане определения IP, и в nginx отправляют мусор, а apache пишет его в лог.

fliger
На сайте с 17.09.2015
Offline
106
#8
LEOnidUKG:
Значит админ не верно настроил проксирование в плане определения IP, и d nginx отправkяют мусор, а apache пишет его в лог.

Спасибо за подсказку - отправил ее в техподдержку.

---------- Добавлено 26.04.2018 в 18:37 ----------

Заблокировал через .htaccess все IP, запись которых нестандартна:

SetEnvIf Remote_Addr ^(?!(?:[0-9]{1,3}\.){3}[0-9]{1,3}$) bad_ip

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#9

У них скорее всего апатчу отправляется:

HTTP_X_FORWARDED_FOR

Который можно вписать ЛЮБОЙ. Это очень распространённая проблема, когда настраивают по мануалам, и не понимают, как это работает.

Они отправляют:

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

И считывают апатчем X-Forwarded-For вместо X-Real-IP

Отсюда и проблемы.

Но опять же, эти проблемы будут только в логах т.к. апатч тоже не дурак и понимает, что ему дичь скармливают и в PHP будет нормальный IP отображаться. По крайне мене я протестировал на apache 2.4 с модулем real_ip стандартным, всё ок. Мусора нет.

danforth
На сайте с 18.12.2015
Offline
153
#10

Обычный сканер на дырки + SQL инъекции. А в логи пишеться мусор, так как очевидно метод не GET/POST, а какой нибудь null-байт или что-то вроде того.

 OR 2+627-627-1=0+0+0+1

Вот эта часть - попытка SQL инъекции.

Junior Web Developer
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий