Ihor Bliumental – Is There Life Outside OWASP Top-10

OWASP Kyiv
May. 29, 2017
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
Ihor Bliumental – Is There Life Outside OWASP Top-10
1 of 29

More Related Content

Slideshows for you

Authentication securityAuthentication security
Authentication securityOlga Lavrentieva
Иван Карев — Клиентская оптимизацияИван Карев — Клиентская оптимизация
Иван Карев — Клиентская оптимизацияYandex
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановкиКухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановки
Кухня создания PBN: От поиска доменов, сетапа сайтов, до тестов и простановкиNaZapad
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionAndrew Petukhov
SEO-Friendly WebsitesSEO-Friendly Websites
SEO-Friendly WebsitesElkaakle

Slideshows for you(20)

Similar to Ihor Bliumental – Is There Life Outside OWASP Top-10

Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...
Иван Чалыкин (Россия), Digital Security. Легальный SOP Bypass. Проблемы внедр...KazHackStan
Blackbox-тестирование веб-приложенийBlackbox-тестирование веб-приложений
Blackbox-тестирование веб-приложенийbeched
JavaScript Базовый. Занятие 08.JavaScript Базовый. Занятие 08.
JavaScript Базовый. Занятие 08.Igor Shkulipa
PHP TricksPHP Tricks
PHP TricksBlackFan
Catalyst – MVC framework на Perl  (RIT 2008)Catalyst – MVC framework на Perl  (RIT 2008)
Catalyst – MVC framework на Perl (RIT 2008)Sergey Skvortsov
Поиск уязвимостей с использованием статического анализа кодаПоиск уязвимостей с использованием статического анализа кода
Поиск уязвимостей с использованием статического анализа кодаAndrey Karpov

Similar to Ihor Bliumental – Is There Life Outside OWASP Top-10(20)

More from OWASP Kyiv

Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...
Is there a penetration testing within PCI DSS certification? (Dmytro Diordiyc...OWASP Kyiv
Software Supply Chain Security та компоненти з відомими вразливостямиSoftware Supply Chain Security та компоненти з відомими вразливостями
Software Supply Chain Security та компоненти з відомими вразливостямиOWASP Kyiv
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteCloud Security Hardening та аудит хмарної безпеки за допомогою Scout Suite
Cloud Security Hardening та аудит хмарної безпеки за допомогою Scout SuiteOWASP Kyiv
Threat Modeling with OWASP Threat DragonThreat Modeling with OWASP Threat Dragon
Threat Modeling with OWASP Threat DragonOWASP Kyiv
Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...
Anastasia Vixentael - Don't Waste Time on Learning Cryptography: Better Use I...OWASP Kyiv
Vlad Styran - Cyber Security Economics 101Vlad Styran - Cyber Security Economics 101
Vlad Styran - Cyber Security Economics 101OWASP Kyiv

More from OWASP Kyiv(20)

Ihor Bliumental – Is There Life Outside OWASP Top-10

  1. Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation OWASP http://www.owasp.org Is there life outside 
 OWASP Top-10? 
 Ihor Bliumental OWASP Kyiv Chapter Lead ihor.bliumental@owasp.org Kyiv
 27 May 2017

  2. OWASP 2 OWASP Top 10 quick overview

  3. OWASP 3 Unsafe cross origin resource sharing Same Origin Policy для XMLHttpRequest Origin: https://site1.com Web-
 APP Server – site1.com Server – site2.com Browser https://site1.com XMLHttp

  4. OWASP 4 Unsafe CORS - JSONP Для GET запросов можно использовать JSONP GET /api?callback=func HTTP/1.1 … HTTP/1.1 200 OK … func({“token”:”secret_token”})

  5. OWASP 5 Unsafe CORS - JSONP Для GET запросов можно использовать JSONP • если не передаются чувствительные данные • для чувствительных данных использовать AJAX Для пентестеров: • пробовать подбирать callback-параметр (callback, cb, _cb, jsonp и т.п.)

  6. OWASP 6 Unsafe CORS - Access-Control-Allow-Origin • При кросс-доменном AJAX-запросе браузер шлёт запрос с заголовком Origin • Если у объекта класса XMLHttpRequest установлено withCredentials=true, браузер отсылает куки и сертификаты • Браузер должен вернуть заголовки. 
 Access-Control-Allow-Origin: *
 или
 Access-Control-Allow-Origin: <origin>
 Access-Control-Allow-Credentials: true • Ещё заголовки
 Access-Control-Request-Method
 Access-Control-Request-Headers

  7. OWASP 7 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin

  8. OWASP 8 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin • /http(s)://example.com/

  9. OWASP 9 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin • /http(s)://example.com/ -> https://example.com.evil.com


  10. OWASP 10 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin • /http(s)://example.com/ -> https://example.com.evil.com • /^http(s)://sub.example.com$/

  11. OWASP 11 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin • /http(s)://example.com/ -> https://example.com.evil.com • /^http(s)://sub.example.com$/ -> https://sub- example.com


  12. OWASP 12 Unsafe CORS - Access-Control-Allow-Origin Ошибки, приводящие к уязвимости: • Отражение любого Origin • /http(s)://example.com/ -> https://example.com.evil.com • /^http(s)://sub.example.com$/ -> https://sub- example.com • Проверка только http-протокола. Возможность использовать ftp://evil.com в качестве origin
 Необходимо использовать белый список разрешённых origin'ов

  13. OWASP 13 Client side template injections • AngularJS, Backbone.js, Ember и т.д. • представление (view) должно отдаваться статикой • логика приложения реализована через клиентские контроллеры, общающиеся с серверным API • TI возникает при попытке сделать представления динамичными • шаблонные выражения чаще всего имеют вид {{5*5}}, [[5*5]], <%5*5%> и т.п. • Побег из песочницы -> классический XSS, но не всегда есть способ сбежать


  14. OWASP 14 Client side template injections Не всегда нужно пытаться сбегать • в контроллере может быть реализована функция, которая сможет помочь (смена пароля, эл. почты, подтверждение OAuth регистрации и т.п.) Пентестерам • добавить в свои пейлоады выражения типа {{14.6-1.3}}, [[14.6-1.3]] и т.п., а в DOM-дереве документа искать 13.3 • если есть, попытаться выйти из песочницы • не вышло - изучить контроллеры Программистам • стараться не использовать динамику в шаблонах • если невозможно, использовать ng-non-bindable и аналоги

  15. OWASP 15 Server side template injection • Уязвимость возникает, когда пользовательский ввод помещается в шаблон • PortSwigger https://goo.gl/NoKhqe

  16. OWASP 16 Server side template injection Как защищаться? • не передавать пользовательский ввод в шаблон • если это необходимо, использовать простые шаблонизаторы (Mustache) • использовать песочницу (виртуализация через Docker, песочницы средствами языка) Пентестерам • Github: epinna/tplmap; Burp Suit Pro

  17. OWASP 17 Server side request forgery • Возникает, когда пользователь может указать серверу внешний ресурс, куда нужно обратиться • скачивание файлов с других серверов по http • проксирование API • скачивание и загрузка файлов по FTP и т.п. • http://example.com/download?url=http:// example.net/img.jpg

  18. OWASP 18 Server side request forgery Чем это опасно? • http://example.com/download?url=http://localhost/ server-status • http://example.com/download?url=dict:// 10.0.1.2:11211/stat • http://example.com/download?url=http:// 169.254.169.254/latest/meta-data/ • http://example.com/download?url=file:///etc/passwd • 0.0.0.0, [::], http://u:p@evil.com?@example.com/ и т.д. • DNS rebinding

  19. OWASP 19 Server side request forgery Предположим, что мы сделали белый список доменов и протоколов • http://example.com/download?url=http://evil.com/?redirect=file:///etc/ passwd Пентестерам • разобраться в типе фильтрации, в случае отсутствия белого списка пробовать обходы • использовать open redirects • Программистам • использовать белые списки • не следовать за перенаправлениями, но если необходимо, то проверять каждый новый URL • использовать готовые решения. Для PHP: fin1te/safecurl

  20. OWASP 20 Unsafe deserialization • Для сохранения состояния объекта их предварительно сериализуют - приводят к набору байтов (строке) • При обратном преобразовании объект создаётся заново, при этом происходит "магия" – вызываются конструкторы и некоторые другие методы • Правильно составленная сериализованная строка может привести к RCE, утечке данных и т.п.

  21. OWASP 21 Unsafe deserialization JAVA • "Волшебные байты" 0xAC 0xED (base64: rO0) • Могут находиться в HTTP запросах (Cookie, параметры и т.д.), Java RMI протокол, RMI over HTTP • XStream - сериализация в XML. Позволяет сериализовать даже несериализуемые классы. • Очень подробный cheat shit на Github: GrrrDog/ Java-Deserialization-Cheat-Sheet

  22. OWASP 22 Unsafe deserialization PHP • Пример объекта: O:3:"foo":2:{s:4:"file";s:9:"shell.php";s:4:"data";s: 5:"aaaa";} • После десериализации вызываются методы __wakeup() и __destruct() • При наличии исходного кода, можно найти классы, содержащие опасный код в этих методах • CVE-2014-8142 и CVE-2015-0231 (<5.4.36, <5.5.20, <5.6.4) • https://www.owasp.org/index.php/PHP_Object_Injection

  23. OWASP 23 Unsafe deserialization Ruby • Процессор для YAML объектов. • CVE-2013-0156 RoR <3.2.11, <3.1.10, <3.0.19, <2.3.15 Python • Python pickle • YAML

  24. OWASP 24 Unsafe deserialization Пентестерам • держать в голове то, как выглядят серилиазивонные объекты в разных языках. • многие сканеры успешно сигнализируют о таких Программистам • Никогда не десериализировть объекты из недоверенных источников

  25. OWASP 25 Race conditions • Возникает, когда несколько потоков могут изменять с один и тот же объект без блокировки • Возможность записи в один и тот же файл, сокет и т.п. • Изменение финансовых записей без применения транзакций и блокировок (оплата нескольких заказов, многократное применение купонов и т.п.) • Места, где присутствуют 
 ограничения на ресурсы
 (количество пользователей,
 документов и пр.)
 


  26. OWASP 26 Race conditions Пентестерам • Burp Suit Pro -> Intruder -> Null payload • Bash script: 
 #!/bin/bash
 curl http://example.com/1 & 
 curl http://example.com/2 & Программистам • ACID – Atomicity, Consistency, Isolation, Durability (Атомарность, Согласованность, Изолированность, Устойчивость).


  27. OWASP 27 Subdomain takeover • Поддомены привязываются к сервисам с помощью A или CNAME записи • Heroku, Github, Amazon S3, Unbounce, Wordpress, Google services etc. • Сервисы перестают использоваться, атакующий регистрирует сервис и добавляет поддомен себе в учётную запись. • Phishing, XSS, обход белых списков. Пентестерам • recon-ng, altdns, cloudflare и т.д.

  28. OWASP 28 AWS s3 buckets • Amazon s3 bucket позволяет хранить и отдавать статические файлы
 
 aws s3 ls s3://bucket-name
 aws s3 mv test.txt s3://bucket-name
 aws s3 sync s3://bucket-name/path . • Могут содержать бэкапы, пользовательские данные • Возможно использовать для фишинга, обхода фильтрации

  29. OWASP 29 Вопросы?