Bugbounty.
1/43

Bugbounty. Оптимизируем и упрощаем ваши исследования

1. Bugbounty.

Оптимизируем и упрощаем ваши исследования.

2.

Ермаков Константин
Системный аналитик
компании «Перспективный мониторинг»
Konstantin.Ermakov@amonitoring.ru
Telegram: https://t.me/BackdoorBatman
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
2

3. О чем пойдет разговор?

1. Методы и подходы к тестированию
2. Сбор информации.
3. Построение карты веб-приложения
4. Аутентификация и сессия
5. XSS
6. SQL injection
7. File inclusion & Uploads
8. CSRF
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
3

4. Методы и подходы к тестированию

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
4

5. Основные виды bugbounty программ.

Single-sourced
1. Поиск часто-встречающихся
уязвимостей.
2. Отсутствует соревновательная
часть.
3. Количество > качество.
4. Гарантированный доход и
беспристрастный анализ
отчетов.
27.07.2017
Crowdsourced
1. Гонка со временем.
2. Соревнование с остальными
исследователями.
3. Принуждает искать
уникальные нетипичные баги.
4. Доход в основном зависит от
критичности уязвимостей.
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
5

6. Литература по базовым методологиям

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
6

7. Сбор информации.

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
7

8. Ищите нехоженые тропы

1. Тщательно исследуйте scope вашей багбаунти программы.
2. *.target.com – один из ваших основных источников.
3. Поиск поддоменов возможен через google. (Есть варианты автоматизации)
4. Исследуйте изменения функциональности веб-приложения и редизайны.
5. Мобильные версии.
6. Мобильные приложения. (Трафик с сервером)
7. Иногда полезно расширить диапазон поиска на материнские компании.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
8

9. Скрипт поиска поддоменов. (enumall.py)

Работает на основе:
1. Поисковых движков (google, yahoo, bing, baidu)
2. OSINT сайты (shodan, netcraft)
3. Брутфорс поддоменов на основании популярных списков.
https://github.com/jhaddix/domain/
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
9

10. Пример работы

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
10

11. Принцип работы

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
11

12. Принцип работы

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
12

13. https://www.facebook.com/notes/phwd/facebook-bug-bounties/707217202701640

https://www.facebook.com/notes/phwd/facebook-bugbounties/707217202701640
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
13

14. Сканирование портов

Сканирование портов нужно не только для сетевого
тестирования!
Полное порт-сканирование обнаруженных вами редко
используемых серверов обычно приведет к интересным
результатам:
1.
Незадокументированные возможности веб-приложения.
2.
Внутренние сервисы.
3.
На facebook сервере была Jenkins script консоль без
авторизации.
4.
На IIS.net был открыт RDP порт с уязвимостью ms12-020
nmap –sS –A –PN -p- --script=http-title target.com
Syn сканирование, фингерпринтинг ОС и сервисов, без пингов,
все порты, выводит http заголовки корневых страниц.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
14

15. Построение карты веб-приложения

Построение
карты вебприложения
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
15

16. Полезные тулзы.

1. Google
2. Идентификаторы платформ:
I. Wapplyzer (Chrome)
II. Builtwith (Chrome)
3. Умные приложения для брута директорий:
I. RAFT lists
II. SVN Digger
III. Git Digger
4. Auxiliary:
I.
II.
27.07.2017
WPScan
CMSmap
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
16

17. Порядок работы с обычными брутфорс-приложениями

Порядок работы с обычными брутфорсприложениями
1. Определение актуальных списков для вашего веб-приложения
2. Анализ и корректировка подкаталогов на основании получаемых статус-кодов
HTTP
ПРИМЕР:
GET http://www.target.com – 200
GET http://www.target.com/logs/ – 404
GET http://www.target.com/adminpanel/ – 401 **Стоит рассмотреть ближе*
GET http://www.target.com/adminpanel/ Продолжаем брутфорс отсюда.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
17

18. Использование открытых источников.

1. Xssed.com
2. Reddit XSS раньше, сейчас reddit netsec
reddit.com/r/netsec
3. www.openbugbounty.org
4. Поиск по твиттеру
5. Фиды телеграма.
6. И т.д.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
18

19. Аутентификация и сессия

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
19

20. Аутентификация

1. Отсутствует проверка на одинаковый логин\пароль
2. Отсутствие капчи на страницах регистрации
3. Отсутствие капчи на страницах логина
4. Отсутствие капчи на страницах восстановления
пароля
5. Учетная запись не блокируется по количеству
неверных попыток
6. Слабая парольная политика
7. Изменение персональных данных не требует
повторного ввода пароля
8. Многоразовые токены на сброс пароля или
отсутствие ограничения на время действия токена
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
20

21. Сессия

1. Неспособность аннулировать старые
файлы cookie
2. Нет создаются новые cookie при входе /
выходе из системы / таймауте
3. Cookie не ограниченные по времени
актуальности
4. Разрешено несколько одновременных
сеансов
5. Легко обратимый шифр cookie (base64
чаще всего) или его отсутствие
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
21

22. XSS

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
22

23. XSS

Основная идея – Содержит ли страница
динамический контент? Можете ли вы
изменять эти данные?
Если исследования сильно ограничены по времени – то действует правило 80\20.
Многие исследователи используют так называемые полиглот-шаблоны, который
позволяют значительно уменьшить время тестирования. Основной минус таких
шаблонов – большая длинна вредоносного кода.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
23

24. Ultimate XSS polyglot

jaVasCript:/*-/*`/*\`/*'/*"/**/(/* */oNcliCk=alert()
)//%0D%0A%0d%0a//</stYle/</titLe/</teXtarEa/</scRipt/-!>\x3csVg/<sVg/oNloAd=alert()//>\x3e
https://github.com/danielmiessler/SecLists/blob/master/Fuzzing
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
24

25. Шаблон для поиска обхода фильтраций

'">><marquee><img src=x onerror=confirm(1)></marquee>"
></plaintext\></|\><plaintext/onmouseover=prompt(1)
><script>prompt(1)</script>@gmail.com<isindex
formaction=javascript:alert(/XSS/) type=submit>'-->"
></script><script>alert(1)</script>"><img/id="confirm&lpar;
1)"/alt="/"src="/"onerror=eval(id&%23x29;>'"><img src="http:
//i.imgur.com/P8mL8.jpg">
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
25

26. Короткий шаблон для поиска инъекций

“ onclick=alert(1)//<button ‘ onclick=alert(1)//> */ alert(1)//
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
26

27. На что стоит обращать внимание?

1. Кастомизируемые темы и возможность загрузки css стилей
2. URI based
3. Импорт данный из других веб-приложений или систем (интеграция с соц. сетями)
4. JSON API (проверяйте какой content type приходит в ответе)
5. Имена загружаемых файлов
6. Загрузка файлов (swf, HTML, ++)
7. Страницы об ошибках
8. Случайные параметры - ?realparam=1&foo=bar’+alert(/XSS/)+’
9. Формы логина, регистрации, восстановления пароля
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
27

28. SWF XSS

Потенциально уязвимые параметры:
onload
Movieplayer
xmlPath
Eventhandler
callback
Строки для тестирования:
• \%22})))}catch(e){alert(document.domain);}//
• "]);}catch(e){}if(!self.a)self.a=!alert(document.domain);//
• "a")(({type:"ready"}));}catch(e){alert(1)}//
http://blog.watchfire.com/FPI.pdf
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
28

29. SWF XSS

https://github.com/cure53/Flashbang
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
29

30. SQLi

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
30

31. SQL injection

Основная идея – Содержит ли страница данные, которые могут подгружаться из
базы?
Полиглот для проверки переменных на SQLi:
SLEEP(1) /*‘ or SLEEP(1) or ‘“ or SLEEP(1) or “*/
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
31

32. SQL injection

Так же можно использовать различные списки для фаззинга, например от Seclists:
https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
32

33. SQLi на что стоит обратить внимание?

Часто уязвимые параметры:
1. ID
2. Цены
3. Количество элементов
4. Параметры сортировки (по возрастанию и
т.д.)
5. Cookie
Большинство SQL инъекций будет blind типа, шансы что сейчас вы увидите sqlerror в
обратном ответе довольно мала. Шаблоны для проверки blind SQLi:
• ‘%2Bbenchmark(3200,SHA1(1))%2B’
• ‘+BENCHMARK(40000000,SHA1(1337))+’
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
33

34. Ресурсы по SQLi

• http://pentestmonkey.net/category/cheat-sheet/sql-injection - Хорошие списки для
тестирования на разные базы данных.
• https://www.owasp.org/index.php/SQL_Injection - Полноценный гайд по
тестированию на SQLi
• http://nibblesec.org/files/MSAccessSQLi/MSAccessSQLi.html - Список пейлодов для MS
Access
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
34

35. File inclusion & Uploads

File inclusion &
Uploads
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
35

36. Доступ к локальным файлам (LFI)

Основная идея – Работает ли страница с файлами на сервере?
Часто уязвимые парамерты:
https://github.com/danielmiessler/SecLists/blob
/master/Fuzzing/JHADDIX_LFI.txt
file=
location=
local=
path=
display=
load=
read=
retrieve=
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
36

37. Загрузка вредоносных файлов.

Это важный функционал для каждого вебприложения. Загружаемые файлы должны
проходить через множество проверок, чтобы
считаться безопасными.
Некоторые из векторов атак:
• Загрузка недопустимых типов файлов для
получения исполнения кода на стороне вебприложения (swf, php, html и т.д.)
• Атаки на парсеры файлов через метаданные и
заголовки
• Обход политики безопасности и размещение
вирусов на стороне сервера.
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
37

38. Включение сторонних файлов (RFI)

Основная идея – Передаются ли в каких-либо параметрах адреса на другие ресуры?
Потенциальные параметры из LFI так же попадают под тестирование.
Специфические для RFI параметры:
dest=
continue=
redirect=
url= (or anything with “url” in it)
uri= (same as above)
window=
next=
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
38

39. CSRF

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
39

40. CSRF

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
40

41. CSRF

27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
41

42. CSRF

Основная идея – Все ли запросы от веб-приложения, изменяющие какие-либо
системные настройки или параметры, защищены уникальными токенами?
Специфические для RFI параметры:
dest=
continue=
redirect=
url= (or anything with “url” in it)
uri= (same as above)
window=
next=
Потенциально уязвимые функции:
Изменение пароля
Удаление файла\страницы\пользователя
Перевод денег
Изменение данных пользователя
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
42

43. Спасибо за внимание!

Ермаков Константин
Системный аналитик
компании «Перспективный мониторинг»
Konstantin.Ermakov@amonitoring.ru
Telegram: https://t.me/BackdoorBatman
27.07.2017
ПЕРСПЕКТИВНЫЙ МОНИТОРИНГ
43
English     Русский Правила