Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
    
    
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
    
Дочерние селекторы
    
Селекторы атрибутов
 
Универсальный селектор
    
Псевдоклассы
  
Псевдоэлементы
    
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
    
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
   
Списки
                                          
Ссылки
                                          
Дизайны сайтов
    
Формы
  
Таблицы
    
CSS3
                                         
HTML5
                                       
									Блог для вебмастеров
									Новости мира Интернет
                                    Сайтостроение
    
									Ремонт и советы
	
                                    Все новости
                                        
									
                                    Справочник от А до Я
    
									HTML, CSS, JavaScript
									
									
									Афоризмы о учёбе
									Статьи об афоризмах
									Все Афоризмы
									
									
| Помогли мы вам | 
GitLab — это система управления репозиториями кода для Git с собственной вики, системой отслеживания ошибок и другими функциями.
У нас есть возможность зарегистрироваться, что сразу и сделаем. Это позволит нам получить доступ к большему числу функций, чем у гостей. Поскольку мы имеем дело с серьезным проектом, «тыкать кавычки» в каждую форму смысла нет. Вместо этого стоит поискать информацию об уязвимостях и готовые эксплоиты. Первый шаг на пути к этому — узнать версию продукта. Обычно она приводится на страницах вроде About или в данном случае — Help.
Мы узнаем версию GitLab CE — 12.8.1.
В реальных условиях лучше всего искать эксплоиты при помощи Google, поскольку этот поисковик заглядывает и в личные блоги, и в самые разные отчеты. Но для ускорения можно пользоваться специализированными базами вроде Exploit-DB — скорее всего, там найдутся подходящие варианты. Если ты используешь Kali Linux, то эта база у тебя уже есть и для поиска можно использовать утилиту searchsploit.
Как видишь, мы нашли сразу несколько эксплоитов, хотя для нужной версии GitLab ничего нет. Зато есть для более новой (номер 48431), а значит, скорее всего, подойдет и к нашей.
Эксплуатируемая уязвимость срабатывает при перемещении задачи между проектами GitLab и приводит к тому, что мы можем читать файлы на удаленной машине. Однако у меня ни одна из реализаций этого эксплоита не заработала, поэтому придется все делать в ручном режиме.
Для этого нам нужно изначальное исследование, доказательство работоспособности (proof of concept) этой уязвимости. Чтобы найти его, обращаемся в Google. Нам повезло, на HackerOne (самая известная платформа для bug bounty) нашелся целый отчет. В нем рассказано, как не только читать файлы, но и получить удаленное выполнение кода (RCE)!
Для получения RCE нам нужно иметь консоль Ruby on Rails и значение secret_key_base из файла /. Именно для получения содержимого этого файла мы будем использовать первую уязвимость, которая позволяет читать произвольные файлы.
Итак, читаем файл. Создадим два проекта в GitLab, а потом перейдем к вкладке Issues и выберем New Issue. Там указываем следующее значение в качестве описания и таким образом воспользуемся уязвимостью типа path traversal.







