MosQA #2 — материалы с митапа и поиск всех флагов с квеста

xylcp34rcwjanlboqhkukpjohc4.jpeg

25 февраля в московском офисе Mail.ru Group прошел второй митап сообщества тестировщиков MosQA. Поговорили о том, как в Badoo разработчики тоже начали писать тесты, поделились универсальной задачей для собеседования на Python, а ребята из ОК рассказали, с помощью чего они замеряют производительность Android-приложений. И чтобы прибавить драйва и мозговой активности, мы предложили участникам викторину — она прошла в формате CTF (Capture The Flag). CTF обычно проводят для специалистов по взлому и безопасности и в ходе соревнований предлагают взять флаги, эксплуатируя ту или иную уязвимость. У нас же нужно было протестировать форму добавления комментариев и сам сайт, на котором форма была расположена. Посмотреть и попробовать свои силы вы можете на сайте MosQA CTF. А для тех, кто давно ждал разбора, — добро пожаловать под кат.

Программа:


d8wbfjpc3dqw6yc8mtre2dhychy.png

«Общий язык с разработчиками, или Почему мы начали писать тесты на Go»


Екатерина Харитонова, Sr. QA engineer, Badoo

Доклад — о нашем опыте тестирования сервисов с использованием тестовых фреймворков на PHP и Go. А еще о том, почему тестовая документация у нас не устаревает и как разработчики и тестировщики научились взаимодействовать максимально эффективно — не надоедая друг другу лишней коммуникацией.

viupibd8lynhx5lznq0bnktwddk.png

«Как найти своего героя? Собеседуем разработчика автотестов (на Python)»


Андрей Яковлев, ведущий специалист по автоматизации тестирования, Mail.ru Group

Поделюсь интересным, на мой взгляд, кейсом, как прособеседовать и оценить разработчика автоматизированных тестов на Python на примере одной задачки.

a-ken-wp9bjcccgy9csuwgz2pts.png

«Замеры производительности в андроид-приложении OK.RU»


Антон Смолянин, инженер по автоматизации тестирования, проект «Одноклассники», Mail.ru Group

В докладе я расскажу, зачем в принципе заниматься замерами, покажу графики ускорения, поделюсь историей, как были найдены и исправлены медленные участки приложения, уделю внимание рекомендациям Google по этому вопросу.

CTF Квест


Подходящую платформу для CTF нашли не сразу: есть открытые решения для CTF-безопасников, но их формат нам не подходил. В итоге за два вечера в баре (в том же, где была афтепати после митапа) Алексей Андросов doochik на коленке набросал решение. А кейсы и UI мы натягивали буквально за несколько часов до мероприятия. Тестировали уже в продакшене. Ну и как водится, нашли пару шероховатостей. О них ниже. Не судите строго, хотелось фана — и, кажется, нам удалось доставить вам удовольствие.

Ответы принимались в поле «Имя». Они были в двух форматах: кейсы и флаги. Кейсы — текст, который подходил под регулярки и являлся тестовым случаем для текстового поля. Стандартные проверки на граничные значения, обработка пользовательского ввода, etc.

Всего кейсов было 15:

  1. Пустая строка
  2. 1 символ
  3. Пробел в начале
  4. Одиночный пробел
  5. Пробел в конце
  6. Пробелы в середине
  7. 9 символов
  8. 10 символов
  9. 11 символов
  10. HTML-тег, например

  11. XSS-инъекция, например
  12. SQL-инъекция, строка начинается с апострофа
  13. Любой символ, не входящий в [a-zа-я0–9]
  14. Не ASCII-символ, можно было подставить эмоджи
  15. Символ новой строки


Последний пункт со звездочкой. Форма экранирует символ новой строки, и, чтобы получить флаг, можно было использовать фиддлер, например:

va7avpxds2pgraa8mbx6v-00bjw.png

Второй формат ответа — флаги. Они располагались в разных частях сайта, в которые, по нашему мнению, нужно заглянуть ответственному медоеду. Они представляли собой случайный набор символов, похожий на хэш, — увидеть его и пройти мимо было бы сложно. Вот где их надо было искать:

  1. На 404-й странице
  2. На robots.txt
  3. OG-метках. Да-да, их тоже нужно проверять!
  4. В исходном коде страницы
  5. В куке x-token
  6. В названии ресурса, которого не было на сервере и в консоли светился 404-м статусом
  7. На странице при заходе из IE. Ну или подставив его в User-Agent)
  8. Использовав метод GET вместо POST, для урла, на который уходили данные формы.
  9. И в исходном коде страницы mosqa.ru/admin


Итого: 24 балла.

Еще раз поздравляем победителей, которые унесли с собой крутые футболки. Sonic, если ты нас читаешь, найдись! Твоя футболка ждет тебя.

Мы хотим выложить нашу платформу в OpenSource. Распространяется под лицензией MIT. Дополняйте своими кейсами и флагами, исправляйте баги, создавайте новые крутые квесты.

Мы всегда рады новым медоедам в нашем уютном чате. Мы хотим, чтобы медоедов становилось больше. Поэтому если вы готовы сделать дайджест, искать спикеров, новые площадки — вам достанется крутая футболка. А если чувствуете в себе силы подготовить доклад, то с нас худи!

P.S. Все материалы (фотографии, презентации и отдельно видео) можно найти в нашем Облаке.


Медоеды, вперед! :)

© Habrahabr.ru