Процес аудиту безпеки веб-додатків є досить тривалим й вимагає терпіння, уважності та спостережливості від фахівця. При правильному підході, ця робота завжди є ефективною й дозволяє швидко виявляти численні вразливості. У цьому мануалі я розкажу як провести аудит безпеки веб-додатку, з яких етапів він складається, які інструменти та кроки потрібно виконати, з чого почати й багато іншого корисного.
- Підготовка робочого середовища
- Автоматичне IAST/DAST сканування
- Напівавтоматичне / ручне сканування
- Пошук хостів: доменів, субдоменів, IP-адрес (Host Harvesting / Subdomain Discovery)
- Аналіз хостів та IP-адрес
- Сканування мережевого периметру (Network Perimeter Scanning)
- Аналіз DNS-зони (DNS Discovery)
- Аналіз TLS/SSL
- Аналіз SMTP-сервера
- Аналіз FTP-сервера
- Аналіз SQL-сервера
- Аналіз SSH-сервера
- Аналіз HTTP-заголовків
- Аналіз технологій (Technology Lookup)
- Парсинг файлової структури (збір файлів, папок, URL)
- Аналіз параметрів URL
- Аналіз вихідного коду (Source Code Analysis)
- Аналіз веб-елементів (аналіз POST/GET запитів)
- Ідентифікація та оцінка вразливостей
- Підготовка звіту
- Корисні посилання
Підготовка робочого середовища
Насамперед необхідно налаштувати середовище для роботи, наприклад:
- Розгорнути середовище Linux. Рекомендую використовувати поєднання Arch Linux / Fedora як хост-система + Kali Linux / Parrot Linux на VirtualBox чи VPS виключно для проведення пентестів.
- Підготувати інструментарій: утиліти, сервіси, кіберпошукові системи і т.д. Підібрати API для інтеграції сторонніх платформ й додатків. Встановити необхідні пакети для відладки та програмування: XAMPP, Python, Go, Perl, Node.js, Selenium, Git і т.д. Редактори вихідного коду: Visual Studio Code, Pycharm, Sublime Text, IDA Pro, Hexedior, SciTE Editor та інші.
- Встановити і налаштувати VPN. Знадобиться для шифрування трафіку, анонімізації IP-адреси та звісно конфіденційності.
- Налаштувати проксі. На етапі сканування мереж і веб-додатків корисно використовувати проксі-сервери. Це допоможе уникнути блокування збоку цільових систем. Використовуйте різні типи проксі, такі як HTTP/HTTPS-проксі, SOCKS5-проксі або анонімні проксі-сервери, залежно від завдань.
- Налаштувати браузер. Використовуйте Mozilla Firefox (Developer Edition) як основний браузер для проведення веб-частини пентесту. Для OSINT-завдань, веб-пошуку можна використовувати Сhromium-браузери, такі як Brave або Vivaldi. Встановіть собі необхідні розширення до них для підвищення ефективності роботи.
- Розгорнути середовище для роботи з даними. Сюди входить програмне забезпечення для роботи з документами, таблицями, базами даних, а також хмарні сервіси, що є важливим інструментом для організації даних під час аудиту. Наприклад, Google Docs і OpenOffice дозволять зберегти та упорядкувати дані. X-Mind – допоможе організувати блок-схеми. Sublime Text і Obsidian – допоможуть вести замітки. Не забудьте й про Adobe Photoshop. Адже чимало елементів звіту включають таблиці, графіки, знімки екрану та коментарі. Для аудиторів вкрай важливо уміти грамотно представити усі ці дані.
Автоматичне IAST/DAST сканування
DAST (Dynamic Application Security Testing) та IAST (Interactive Application Security Testing) — це методи, які найчастіше використовуються для автоматичного виявлення вразливостей веб-додатків.
Кожен з них має свій підхід до аналізу і тестування безпеки:
- DAST: фокусується на тестуванні веб-додатків ззовні, подібно до того, як це робив би атакуючий. Він аналізує працюючий додаток в реальному часі, симулюючи різноманітні атаки, такі як SQL-ін’єкції або XSS. DAST не має доступу до вихідного коду, а тому не враховує внутрішню логіку додатку, зосереджуючись на поведінці та взаємодії користувача з системою.
- IAST: працює всередині додатку під час його виконання, інтегруючись з самим кодом. Це дозволяє йому поєднувати аналіз статичного та динамічного типів для більш глибокого виявлення вразливостей. Виконує зондування і сканування. Може спостерігати за потоком даних, відслідковувати, як вони взаємодіють з різними компонентами, і виявляти вразливості, які можуть залишитися непоміченими при використанні тільки DAST або статичного аналізу SAST.
Список кращих IAST/DAST інструментів:
- Acunetix Vulnerability Web Scanner
- Burp Suite
- WPScan
- OWASP Zap
- Qualys Web Application Scanner
- Tenable Nessus
Розгортаємо ці інструменти на віртуальній машині чи сервері, запускаємо їх і поки відбуватиметься сканування, переходимо до ручного тестування.
Напівавтоматичне / ручне сканування
Напівавтоматичне ручне сканування (Manual Scan) вимагає від фахівця певного багажу знань, досвіду та навичок, оскільки поєднує використання автоматичного і ручного (manual) аналізу, що гарантує підхід більш глибокого та детальнішого виявлення вразливостей (Deep Dive).
Щоб успішно провести аудит, необхідно розуміти архітектуру і структуру веб-додатків. Мати попередній досвід, де можуть знаходитися ті чи інші потенційні точки входу, ризики, вразливості.
Пошук хостів: доменів, субдоменів, IP-адрес (Host Harvesting / Subdomain Discovery)
Даний етап є частиною класичної OSINT-розвідки. Його завданням є виявлення усіх ресурсів, котрі можуть бути пов’язані з досліджуваним об’єктом й містити додаткові відомості, хости, компоненти і т.д. Усі вони можуть бути вразливими до атак різного рівня. А тому їх необхідно ретельно зібрати і уважно дослідити. Субдомени дуже часто розкривають оригінальні IP-адреси серверів, замасковані CDN. Також можна знайти сервери, які не обслуговуються і є вразливими.
Інструменти та сервіси:
- Subdomain Finder
- Shodan
- Censys
- DNSdumpster
- Crt.sh
- ZoomEye
- OWASP Amass
- theHarvester
- VirusTotal (вкладка Relations)
- SecurityTrails

Приклади команд:
censys subdomains [hostname]— пошук субдоменів з допомогою CLI Censys;python3 censys-subdomain-finder.py [hostname]— виявлення субдоменів з допомогою скрипту на базі API Censys;bbot -t [hostname] -f subdomain-enum— пошук субдоменів з допомогою утиліти BBOT;subfinder -d [hostname]— пошук субдоменів з допомогою утиліти Subfinder;subfinder -dL domains.txt -all -recursive -o list_all.txt— пошук субдоменів із всіх можливих джерел для вказаного списку у файлі;python3 sublist3r.py -d [hostname]— пошук субдоменів з допомогою утиліти Subl1s3r;amass enum -d evil.com -o evil_amass.txt— пошук субдоменів з допомогою утиліти OWASP Amass зі збереженням результатів в файл;amass enum -active -d evil.com -o evil.active_scan.txt— пошук субдоменів з допомогою активного сканування;amass enum -passive -d evil.com -o evil.passive_scan.txt— пошук субдоменів з допомогою пасивного сканування;assetfinder example.com— пошук субдоменів з допомогою утиліти assetfinder;knockpy -d [hostname] --recon --bruteforce— брутфорс субдоменів з допомогою утиліти knock;python3 cloakquest3r.py [hostname]— брутфорс субдоменів з допомогою утиліти CloackQuest;gobuster dns -d [hostname] -w ~/wordlists/subdomains.txt— енумерація субдоменів по словнику з допомогою утиліти gobuster;dnsenum [hostname]— комплексна перевірка DNS з енумерацією субдоменів;ffuf -w ~/SecLists/Discovery/DNS/subdomains-top1million-5000.txt -H "Host: FUZZ.example.com" -u [hostname]— брутфорс субдоменів по словнику з допомогою утиліти FFUF;cat * | sort -u | tee subdomains.txt— збирає вміст усіх файлів у поточному каталозі, сортує їх в алфавітному порядку і видаляє дублікати, зберігаючи в файл;cat domains.txt | while read domain; do host $domain | grep "has address" | awk '{print $1, $4}'; done > ips_domains.txt— отримати список IP-адрес для списку доменів зі збереженням у текстовий файл;cat— зчитує список доменів або субдоменів із файлу, перевіряє їх доступність на зазначених портах, отримує код статусу, розмір контенту та заголовок сторінки, й зберігає всі результати у файл результату.
all_domains.txt | httpx -ports
80,443,8009,8080,8081,8083,8090,8180,8443,2082,2083,2086,2087,7080 -sc
-cl -title -t 100 -fr -nc | tee subdomains_list.txtcurl -s '<URL>/favicon.ico' | base64 | python3 -c 'import mmh3,sys;print(mmh3.hash(sys.stdin.buffer.read()))'– отримати хеш фавіконки для подальшого реверс-пошуку у кіберпошукових системах Shodan/ZoomEye. Таким чиноми можна знайти усі хости, які використовують один favicon.site:*.example.com -www– дорк для пошуку субдоменів в індексі Google.
У висновку, формуємо таблицю результатів:
| Domains | IP-address |
| example.com | XX.XXX.XXX.XX |
| subdomain1.example.com | XX.XXX.XXX.XX |
| subdomain2.example.com | XX.XXX.XXX.XX |
Аналіз хостів та IP-адрес
Переходимо до аналізу хостів. На цьому етапі виконуємо Web Domain Intelligence та Network Intelligence дослідження – аналізуємо зібрані домени/субдомени та їх IP-адреси. Аналізуємо дані WHOIS та інші показники. Завдання – витиснути та відфільтрувати якомога більше конкретної інформації про досліджувані об’єкти.
Cервіси та інструменти:
- Web Check AS93
- VirusTotal
- URLscan.io
- Intelx.io
- CyberGordon
- WHOXY
- Whoisology
- Whoisrequest history
- DNS history
- Complete DNS history
- BigDomainData Whois
- Spiderfoot
- RiskIQ
- SecurityTrails
- Maltego
- Reverse Google Analytics
- Radar Cloudflare
- Web Wiz Network Tools
Приклади команд:
shodan host xx.xx.xxx.xxx— аналіз хоста в кібер-пошуковій системі Shodan CLI;./shodan_check.sh— Bash-скрипт для масового аналізу ip-адрес з допомогою Shodan;cat ips.txt | ipinfo | less— отримати інформацію по списку IP-адрес з допомогою CLI IPinfo;cat ips.txt | ipinfo summarize— отримати зведену статистику по списку IP-адрес;censys search [hostname]— аналіз ip-адреси хоста в кібер-пошуковій системі Censys CLI;censys view XX.XX.XXX.XX— отримання інформації про досліджуваний ресурс з кіберпошукового сервісу Censys;whois XX.XX.XXX.XXX— отримання інформації про досліджуваний ресурс з реєстру WHOIS: дані про підмережу, реєстратора, власника;./whois_check.sh— Bash-скрипт для масового аналізу WHOIS доменів і ip-адрес;curl --request GET \ --url https://api.securitytrails.com/v1/history/securitytrails.com/whois \ --header 'APIKEY: ***'— отримання історії WHOIS з допомогою API SecurityTrails;curl https://freeapi.dnslytics.net/v1/ip2asn/XX.XX.XXX.XXX— отримання номеру ASN провайдера з допомогою кіберпошукового сервісу DNSlytics;curl --request GET --url https://api.securitytrails.com/v1/ips/nearby/XX.XX.XXX.XXX --header 'APIKEY: ***'— пошук пов’язаних ресурсів з допомогою API SecurityTrails;ping XX.XX.XXX.XXX— перевірка чи відповідає, пінгується досліджуваний ресурс;traceroute --resolve-hostnames XX.XX.XXX.XXX— визначення маршруту та проміжних вузлів через які проходить з’єднання з досліджуваним ресурсом;traceroute -I XX.XX.XXX.XXX— те саме, тільки використовується ICMP протокол замість UDP.
Таблиця результатів:
| Domain / Subdomain | IP-address | Hostname | Server / OS | Whois | Open ports | Hosting provider | Country | Other |
| example.com | XX.XXX.XXX.XXX | example.default-host1.net | nginx | Власник: ABC Corp Створений: XX.XX.XXXX Дійсний до: XX.XX.XXX | 22, 25, 80, 443, 3306 | AS200000 Hosting Ukraine LTD | UA | Основний домен |
| sub2.example.com | XX.XXX.XXX.XXX | static.your-server2.de | apache | Власник: XYZ Ltd Створений: XX.XX.XXXX Дійсний до: XX.XX.XXX | 80, 443, 587, 465, 2083 | AS24940 Hetzner Online GmbH | DE | Тестовий домен |
Сканування мережевого периметру (Network Perimeter Scanning)
На цьому етапі визначаємо мережевий периметр досліджуваного ресурсу. Формуємо його мережеву карту – які компоненти/сервіси працюють, на яких TCP/UDP портах. Сканування бажано проводити на віртуальній машині або VPS із застосуванням ротації IP-адрес.
Приклади команд:
sudo masscan -p1-65535 XX.XX.XXX.XXX— сканування мережевих портів методом SYN Stealth з допомогою інструменту massscan.sudo nmap -sV -O -A -Pn XX.XX.XXX.XXX— отримання відомостей про мережеві TCP-порти і компоненти з допомогою NMAP.sudo nmap -sU -p 1-124 XX.XXX.XXX.XXX— отримання відомостей про мерережеві UDP-пороти і компоненти.nmap -sV --script vulners XX.XX.XXX.XXX— сканування по скрипту NMAP з виявленням вразливостей.nmap— деталізований аналіз і пошук вразливостей MySQL з допомогою NMAP.
-sV -p 3306 --script
mysql-audit,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122
XX.XX.XXX.XXXnmap -sV -p 22 --script ssh-auth-methods,ssh-hostkey,ssh-publickey-acceptance,ssh-run,ssh2-enum-algos,sshv1 XXX.XXX.XXX.XXX— деталізований аналіз і пошук вразливостей SSH з допомогою NMAP.
Таблиця результатів:
| Target | IP Address | OS | Port | Protocol | Services | App / Verisons |
| [hostname] | XXX.XX.XX.XX | Ubuntu 20.04 | 21 | TCP | FTP Server | PureFTPd 1.0.48 |
| 22 | TCP | SSH Server | OpenSSH 8.2 p1 | |||
| 53 | UDP | DNS Server | Bind 9.16 | |||
| 80 | TCP | HTTP Server | Nginx 2.16 | |||
| 111 | TCP | RPC Server | Rpcbind 2 | |||
| 443 | TCP | HTTPS Server | Nginx 2.16 | |||
| … | … | … | … |
Аналіз DNS-зони (DNS Discovery)
Цей етап є логічним продовженням попереднього й включає пасивну та активну розвідку DNS-зони. DNS-сервер цікавий тим, що містить прив’язування/направлення на ті чи інші мережеві ресурси, що спростить шлях у проведенні атак.
У цьому контексті необхідно приділити увагу вразливостям, які створюють ризики атак на DNS, зокрема:
- DNS Wildcard Attack
- DNS Cache Poisoning
- DNS Spoofing / Hijacking
- DNS Pharming
- AXFR Attack
Приклади команд:
dig -x XX.XX.XXX.XXX— отримати rDNS запис;dig— комбінована команда для отримання всіх записів DNS-зони з допомогою інструменту dig;
+noall +answer +multiline [hostname] a && dig +noall +answer
+multiline [hostname] aaaa && dig +noall +answer +multiline
[hostname] mx && dig +noall +answer +multiline [hostname] txt
&& dig +noall +answer +multiline [hostname] ns && dig
+noall +answer +multiline [hostname] soadig axfr @ns.example.com [hostname]— перевірка повної передачі записів DNS, вразливість Zone Transfer;python3 dnsrecon.py -d [hostname]— аналіз DNS з допомогою інструменту dnsreacon;curl --request GET \
--url https://api.securitytrails.com/v1/history/[hostname]]/dns/a \
--header 'APIKEY: ***' \
--header 'accept: application/json'— аналіз історії DNS з допомогою API SecurityTrails;fierce --domain [hostname] --subdomains webmail ftp cpanel whm mail cp --connect— аналіз підмережі за вказаними ресурсом та його субдоменами з допомогою утиліти fierce;fierce --domain [hostname]— тест на передачу DNS-зони.cat domains.txt | ./DNSaxfr.sh -r 0— масова перевірка на передачу DNS-зони з допомогою скрипту DNSaxfr.sh;dnswalk -r -a -d [hostname].— перевірка DNS;dnsmap [hostname]— маппінг DNS
Таблиця результатів:
| [hostname] | ||||||
| DNS Record | TTL | Value | IPv4 | IPv6 | ASN | Country |
| TXT | 3600 | “v=spf1 include:_spf.mail.hostinger.com ~all” | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco |
| MX | 14400 | 10 mx2.example.com | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco |
| NS | 86400 | ns2.example.com. | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco |
| ns1.example.com. | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco | ||
| A | 1218 | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco | |
| AAAA | 1137 | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco | |
| SOA | ns1.dns-parking.com. dns.hostinger.com. ( 2023101901 ; serial 10000 ; refresh (2 hours 46 minutes 40 seconds) 2400 ; retry (40 minutes) 604800 ; expire (1 week) 600 ; minimum (10 minutes) ) | XX.XX.XXX.XX | XX.XX.XXX.XX | Provider | USA, San Francisco | |
| rDNS (PTR) | XXX.XXX.XXX.XX.in-addr.arpa domain name pointer web.example.net. | |||||
Таким чином, на базі результатів 2-х попередніх перевірок – Network Perimeter Scanning та DNS Discovery ми отримали МЕРЕЖЕВУ КАРТУ (Network Mapping) досліджуваного ресурсу. Вона наочно показує його інфраструктуру, усі ресурси і компоненти, включаючи домени, субдомени, IP-адреси, сервери, відкриті порти, сервіси. Мережева карта допоможе визначити слабкі місця, виявити потенційні вразливості та вектори атак, відстежувати взаємозв’язки між серверами та доменами, а також планувати подальші кроки, залежно від контексту нашого дослідження.


Аналіз TLS/SSL
Наступним кроком буде аналіз TLS-шифрування і SSL-сертифікату. TLS (Transport Layer Security) – це криптографічний протокол для забезпечення передачі даних на рівні сервера. SSL (Socket Layer Security) – це протокол, який забезпечує безпечне HTTPS-з’єднання та регулює його на рівні веб-браузера. Обидва протоколи повинні бути актуальними і валідними, щоби унеможливити перехоплення або модифікацію даних.
Сервіси:
Приклади команд:
./testssl.sh XX.XX.XXX.XXX— тестування SSL/TLS з допомогою утиліти testssl.sh.curl -vvI [hostname]— аналіз ланцюжка SSL сертифікатів.curl -v --cert-status [hostname]— вивід інформації про сертифікат у зручному форматі.curl -tlsv1.2 [hostname]— тест на підтримку TLS 1.2.openssl s_client -connect [hostname]:443 -showcerts— перевірка TLS/SSL з допомогою openssl.
Аналіз SMTP-сервера
Якщо досліджуваний ресурс містить у своєму DNS запис MX, який направлений на корпоративний поштовий сервер, а серед відкритимх портів досліджуваної інфраструктури доступний порт SMTP (25, 465, 587, 2525), необхідно провести аналіз SMTP-сервера.
SMTP-сервер (Simple Mail Transfer Protocol) відповідає за передачу електронної пошти між серверами. Аудит цього компонента важливий, оскільки вразливості можуть призвести до проблем із конфіденційністю, цілісністю та доступністю електронної пошти.
Сервіси:
- DNSdumpster
- Web Wiz Mail Server Test Tool
- MAILBOX Email Smtp Server Test
- Mailserver encryption test (STARTTLS, TLS and PFS)
- Check TLS Secure Email
- You get signal. Open ports test
- Secure Fraudmarc SPF
Приклади команд:
nslookup -type=MX example.com— визначення mx-записів для заданого домену;dig mx example.com— визначення mx-записів домену;dig txt example.com— перевірка txt-записів домену для виявлення spf, dmarc, dkim;dig mail.example.com aaaa +short— перевірка AAAA запису в DNS-зоні поштового сервера;sudo nmap -p 25,465,587 mail.example.com— перевірка доступності портів поштового сервера;openssl s_client -starttls smtp -crlf -connect mail.example.com:25— перевірка підтримки шифрування для захисту переданих даних;openssl s_client -connect mail.example.com:25 -showcerts— показати всі сертифікати, які сервер відправляє у відповідь на запит;curl -4 -v https://mail.example.com— діагностика з’єднання з поштовним сервером з допомогою утиліти curl;smtp-user-enum -U /usr/share/commix/src/txt/usernames.txt -p 587 -t XX.XX.XXX.XXX— виконує сканування SMTP-сервера для визначення наявності облікових записів користувачів.

Аналіз FTP-сервера
Аудит безпеки FTP-сервера (File Transfer Protocol) є важливою частиною загальної перевірки безпеки інформаційної інфраструктури. FTP-сервери використовуються для передачі файлів між клієнтом і сервером, і через свою природу можуть бути вразливими до атак, якщо їх належним чином не захищено.
Приклади команд:
nc -nv X.X.X.X 21— отримання назви і версії програмного забезпечення, яке обслуговує FTP-сервер.nmap -p 21,20,990 example.com— перевірка доступних портів ftp з допомогою nmap;nmap -sV -p 21 example.com— перевірка версії ftp;nmap -A -p21 XX.XX.XXX.XXX— агресивний аналіз ftp;sudo— перевірка ftp з використанням NSE-скриптів NMAP;
nmap -p 21 --script
ftp-anon,ftp-bounce,ftp-brute,ftp-libopie,ftp-proftpd-backdoor,ftp-syst,ftp-vsftpd-backdoor,ftp-vuln-cve2010-4221
XX.XX.XXX.XXXftp XX.XX.XX.XX— перевірка несанкціонованого з’єднання по ftp (перевірка команд dir, ls, put, get, mget та ін.);hydra -l admin -P /usr/share/wordlists/rockyou.txt XX.XX.XXX.XXX ftp— перевірка несанкціонованого з’єднання по ftp з застосуванням логінів та паролів по замовчуванню;hydra -t 2 -L user.list -P passwords.list -M targetIPs.list -s 21 ftp— перевірка стійкості облікових записів FTP;ftp://anonymous:anonymous@XX.XX.XXX.XXX— перевірка з’єднання по ftp через веб-браузер;wget -m ftp://anonymous:anonymous@X.X.X.X— завантаження усіх файлів з FTP-сервера.


Команди експлуатації FTP:
Аналіз SQL-сервера
Аналіз SQL-сервера є важливою частиною перевірки безпеки бази даних і системи в цілому. SQL-сервери, такі як MySQL, PostgreSQL та інші, часто зберігають чутливу інформацію і можуть стати мішенню для атак, якщо їх не захищено належним чином.
Приклади команд:
mysql -p 3306 -h XX.XXX.XX.XXX -u root— перевірка віддаленого з’єднання з MySQL-сервером для користувача root;telnet XX.XX.XX.XX 3306— перевірка з’єднання з SQL-сервером;nmap -p 1433,3306,5432,1521 x.x.x.x— перевірка доступних портів SQL;sudo— перевірка sql по NSE-скриптам;
nmap -p 3306 --script
mysql-audit,mysql-brute,mysql-databases,mysql-dump-hashes,mysql-empty-password,mysql-enum,mysql-info,mysql-query,mysql-users,mysql-variables,mysql-vuln-cve2012-2122
x.x.x.xnmap --script=mysql-empty-password -p 3306 x.x.x.xnmap --script=mysql-databases --script-args="mysqluser='root',mysqlpass=''" -p 3306 x.x.x.xhydra -L /path/to/usernames.txt -P /path/to/passwords.txt x.x.x.x sql— перевірка стійкості до атак методом перебору.


Аналіз SSH-сервера
SSH (Secure Shell) — це протокол, який дозволяє безпечно підключатися до віддалених серверів і взаємодіяти з файловою системою. Аналіз SSH-сервера допомагає забезпечити його безпеку, виявити потенційні вразливості і налаштувати його відповідно до найкращих практик безпеки.
Приклади команд:
ssh -v x.x.x.x— перевірка віддаленого з’єднання з SSH-сервером з повним виводом подій;nc -vn x.x.x.x 22— отримання назви і версії програмного забезпечення ssh (banner grabbing);sudo nmap -p 22 --script ssh-auth-methods,ssh-brute,ssh-hostkey,ssh-vuln-cve2014-0224 x.x.x.x— перевірка SSH на вразливості з допомогою скриптів NMAP;hydra -l username -P passwords.txt x.x.x.x -t 4 ssh— перевірка стійкості SSH до брутфорсу облікових записів../ssh-audit.py x.x.x.x— аудит SSH з допомогою утиліти ssh-audit;
Аналіз HTTP-заголовків
HTTP заголовки – це службова, технічна і описова інформація, яка передається на рівні “клієнт-сервер” при доступі до сайту. HTTP-заголовки діють як своєрідні інструкції, які вказують серверу як саме потрібно відрендерити веб-сторінку. Деякі заголовки виконують роль безпеки (HTTP Security Headers) і захищають ресурс від атак, тому їх відсутність різко підвищує кількість ризиків та вразливостей.
Сервіси:
Приклади команд:
curl -I [hostname]— аналіз HTTP-заголовків з допомогою утиліти curl;./nikto.pl -h [hostname]— аудит з допомогою утиліти Nikto;whatweb -v -a3 [hostname]— аудит з допомогою утиліти WhatWeb.

Аналіз технологій (Technology Lookup)
Аналіз технологій є важливим етапом аудиту веб-додатків, спрямованим на оцінку поточного стану і якості технологій, скриптів, віджетів, фреймворків та інших компонентів, що використовуються на стороні досліджуваного ресурсу.

Застарілі неоновлені компоненти можуть містити відомі вразливості й становити серйозну загрозу безпеці. Знаючи версії ти чи інших бібліотек можна також проаналізувати їх будову і написати експлойт.
Інструменти, додатки і сервіси:
Приклади команд:
wpscan --url [hostname] --enumerate u,ap,vt,tt,cb,dbe,m --api-token *** --random-user-agent— сканування сайту на WordPress з допомогою утиліти WPScan;npx hint [hostname]— сканування вихідного коду сайту і пошук вразливих технологій з допомогою сканера WebHint.io.
Таблиця результатів:
| Технологія | Версія | Опис | Вразливості |
| jQuery | 3.5.1 | JavaScript-бібліотека | CVE-2020-11022 |
| WordPress | 4.6.11 | CMS-система | CVE-2021-29447 |
| Lodash | 4.17.21 | JavaScript-бібліотека | CVE-2021-23337 |
| Bootstrap | 5.1.0 | CSS-фреймворк | – / – |
| … | … | … | … |
Парсинг файлової структури (збір файлів, папок, URL)
Цей етап включає обхід структури досліджуваного ресурсу, виявлення прихованих папок і файлів, адміністративних частин, парсинг/cкрапінг/фаззінг URL-адрес тощо.
Інструменти і сервіси:
- Burp Suite (краулер структури)
- OWASP Zap (краулер структури)
- Acunetix Vulnerability Scanner (краулер структури)
- Spider Screaming Frog
- XENU (краулер URL)
- Bug Bounty Helper by Faisal Ahmed
- Ott3rly Google Dorks Generator
- Wayback Machine
Приклади команд:
cat domains.txt | waybackurls | tee wbk_urls.txt— пошук URL для списку доменів з веб-архіву Wayback Machine зі збереженням у файл з допомогою утиліти waybackurls;cat domains.txt | katana -d 5 -ps -pss waybackarchive,commoncrawl,alienvault | tee ktna_urls.txt— пошук URL для списку доменів по різним джерелам з допомогою утиліти Katana;cat domains.txt | gau > gau_urls.txt— пошук URL для списку доменів з допомогою утиліти Gau;cat domains.txt | hakrawler -d 5 -s | tee hkrwlr_url.txt— повний пошук URL, включаючи скрипти, для списку доменів з допомогою утиліти hakrawler;python3 photon.py -u "[hostname]"— парсинг структури заданного ресурсу утилітою photon;python3 pidrila.py -u [hostname] -l ~/dir— сканування структури сайту утилітою pidrila, шукає файли, каталоги які можуть містити важливу інформацію;webpalm -u [hostname] -l1 -x 404,401,403— парсинг структури сайту з допомогою утиліти webpalm;wget -qO- [hostname] | tr \" \\n | grep https\*://— вивід усіх URL-адрес зі сторінки на екран в консоль;gospider -q -s "https://example.com" -c 10 -d 5 -tee gospider_urls.txt— пошук різноманітних URL-адрес з параметрами, включаючи адміністративні, по заданому домену з максимальною глибиною парсингу зі збереженням у файл з допомогою утиліти gospider;gospider— аналогічна команда тільки з фільтрацією вказаних розширень і використанням додаткових джерел;
-s "https://example.com" -c 10 -d 5 --blacklist
".(jpg|jpeg|gif|css|tif|tiff|png|ttf|woff|woff2|ico|pdf|svg|txt)"
--other-source | gospider_urls.txtdirb [hostname]— сканування директорій з допомогою утиліти dirb;dirhunt [hostname]— сканування директорій з допомогою утиліти dirhunt;gobuster dir -u [hostname] -w /usr/share/dirbuster/wordlists/vulners.txt -e -s 200, 301, 302— сканування директорій утилітою gobuster з показом результатів, що відповідають зазначеним статусам сервера;python3 dirsearch.py -e php -u [hostname] --exclude-status 403,401— сканування на наявність файлів php утилітою dirsearch з показом усіх результатів, окрім відповідей 403 і 401;python3— комплексне сканування хостів зі списку на наявність вказаних розширень;
dirsearch.py -l targets.txt -e
php,asp,aspx,jsp,py,txt,conf,config,bak,backup,swp,old,db,sqlasp,aspx,aspx~,asp~,py,py~,rb,rb~,php,php~,bak,bkp,cache,cgi,conf,csv,html,inc,jar,js,json,jsp,jsp~,lock,log,rar,old,sql,sql.gz,sql.zip,sql.tar.gz,sql~,swp,swp~,tar,tar.bz2,tar.gz,txt,wadl,zip
-i 200 --full-urlffuf -u [hostname]/FUZZ -w ~/seclists/Discovery/Web-Content/raft-medium-words-lowercase.txt -e .php,.html,.txt -mc 200— пошук файлів утилітою ffuf по словнику з вказаними розширеннями та кодом відповіді сервера 200;ffuf -w /path/to/wordlist.txt -u https://target.com/FUZZ -e .log,.json,.php,.xml,.md,.zip -mc 200— пошук файлів заданого формату;cat * | gf urls | tee gf_urls.txt— зчитує вміст усіх файлів у поточному каталозі, шукає в них URL-адреси і зберігає в результуючий файл;python2 cangibrina.py -u example.com --ext php— пошук адмін-панелей з допомогою утиліти cangibrina;php inurlbr.php --target 'https://example.com' -o fuzz.txt -s php_result.txt -t 2 -a 'phpMyAdmin 2.11.4'— фуззинг адмін-панелі phpmyadmin з допомогою утиліти inurlbr;php inurlbr.php --dork 'site:*.example.com.ua' -s 'urls-extracted-robots.txt' -q 1 --robots— парсинг url, які містяться в robots.txt для списку веб-сторінок за вказаним дорком і пошуковою системою (q);sort -u urls.txt -o sorted_urls.txt— сортування url, видалення усіх дублікатів зі збереженням очищеного списку в файл.
Після збору інформації про доступні сторінки та файли, дані структуруються, класифікуються за типами контенту, рівнями доступу, важливістю та ієрархією. В результаті ми отримуємо ієрархічну мапу сайту:

Ця карта відображає взаємозв’язки між сторінками, дозволяє ідентифікувати важливі вузли та їхні залежності, що забезпечує більш ефективний аналіз і подальші дії щодо сайту.
Аналіз параметрів URL
Усі зібрані URL-адреси відправляємо на аналіз. Некоректно оброблені або незахищені параметри URL можуть стати точками компрометації і створити вразливості, які призведуть до таких атак як:
- SQL injection (SQLi);
- Cross Site Scripting (XSS);
- IDOR (Indirect Object Reference);
- Open Redirect;
- Broken Object Level Authorization (BOLA);
- Client Side Request Forgery (СSRF);
- Server Side Request Forgery (SSRF);
- Remote File Inclusion (RFI);
- Local File Inclusion (LFI);
- Remote Code Execution (RCE) та ін.
Пошук вразливих точок URL є важливим етапом аудиту безпеки, адже можуть вказати на явні проблеми конфіденційності.
Сервіси / інструменти:
Приклади команд:
python3 parampp.py -u "https://example.com/login"— пошук вразливих параметрів для вказаної URL-адреси з допомогою утиліти ParamPamPam;python3 xsstrike.py -u "https://example.com" --crawl— краулінг веб-сайту з допомогою утиліти XSStrike;python3 xsstrike.py -u "https://example.com/?p=" --fuzzer— фаазінг (перебір) різноманітних потенційно небезпечних параметрів за вказаним URL;python3 xsstrike.py -u "https://example.com/webmail/?color=" --params— парсинг потенційно небезпечних параметрів;python3 pwnxss.py -u http://vuln.example.com— пошук вразливих параметрів для вказаної URL-адреси з допомогою утиліти PwnXSS;arjun -u https://api.example.com/endpoint— виявлення прихованих вразливих URL-параметрів з допомогою утиліти Arjun;cat allurls.txt | gf xss | tee gf_xss.txt— виконує пошук можливих місць для XSS-уразливостей у списку URL-адрес з допомогою утиліти GF;cat allurls.txt | gf sqli | tee gf_sqli.txt— виконує пошук можливих місць для SQLi-уразливостей у списку URL-адрес;cat allurls.txt | gf lfi | tee gf_lfi.txt— виконує пошук можливих місць для LFI-уразливостей у списку URL-адрес;cat allurls.txt | gf rce | tee gf_rce.txt— виконує пошук можливих місць для RCE-уразливостей у списку URL-адрес;cat allurls.txt | gf ssrf | tee gf_ssrf.txt— виконує пошук можливих місць для SSRF-уразливостей у списку URL-адрес;cat allurls.txt | gf idor | tee gf_idor.txt— виконує пошук можливих місць для SSRF-уразливостей у списку URL-адрес;cat allurls.txt | gf interestingparams | tee gf_params.txt— виконує пошук різноманітних потенційно вразливих параметрів у списку URL-адрес;cat allurls.txt | grep "?" | grep "=" | qsreplace | tee xss_urls2.txt— виконує пошук URL-адрес з параметрами “=” з допомогою утиліти qsreplace;cat urls.txt | gf xss | sed 's/=.*/=/' | sed 's/URL: //' | tee cleanurls.txt— пошук url-адрес з параметрами;cat wbk_urls.txt | uro --filter hasparams | tee uro_urls1.txt— пошук url-адрес з параметрами зі списку і збереження їх у файл з допомогою утиліти uro;cat wbk_urls.txt | uro --filter hasext | tee uro_urls2.txt— пошук url-адрес з різними розширеннями (напр., php, html, js та ін.);cat wbk_urls.txt | uro --filter vuln | tee uro_urls3.txt— пошук вразливих url-адрес;cat— виконує тестування URL-адрес на вразливість до XSS-ін’єкцій з допомогою утиліти Airixss;
urls1_xss.txt urls2_xss.txt | qsreplace
'"><script>alert('1447')></script>' | airixss
'alert(1447)' | grep -v "Not"dalfox file urls.txt— перевірка параметрів вразливих до XSS-ін’єкцій для списку URL з допомогою утиліти dalfox;dalfox file urls.txt -b xss.example.com— перевірка параметрів вразливих до Blind XSS-ін’єкцій для списку URL з допомогою утиліти dalfox та XSS Hunter;dalfox— пошук XSS-вразливостей утилітою Dalfox з допомогою XSSHunter і проксі Burpsuite;
file hosts --mining-dom --deep-domxss --ignore-return -b
'xss.example.com' --follow-redirects --proxy http://127.0.0.1:8080cat ktna_urls.txt | parth --pipe xss— пошук потенційних XSS-вразливостей по списку url-адрес з допомогою утиліти parth. Доступні також опції: lfi, ssrf, sqli, xss, open_redirect, rce;paramspider -d example.com— пошук URL-адрес з параметрами з допомогою утиліти paramspider;php— пошук і експлуатація вразливих до XSS URL-адрес за вказаним дорком з допомогою утиліти inurlbr;
inurlbr.php -s xss.txt --dork "inurl:search.php?q= site:example.com" -q
1,6 --exploit-get "<script>alert(1)</script>"echo— пошук і експлуатація вразливих до XSS URL-адрес за вказаним дорком з допомогою різних утиліт;
http://vuln.example.com | waybackurls | gf xss | uro | httpx -silent |
qsreplace '"><svg onload=confirm(1)>' | airixss -payload
"confirm(1)"python3 payloader.py— експлуатація вразливих до XSS URL-адрес з допомогою утиліти xss loader;sqlmap -u 'https://vuln.example.com/index.php?id=' --dbs— аналіз URL-адреси на SQLi вразливості з допомогою утиліти sqlmap;
Особливо варто звернути увагу і протестувати наступні типи URL:
- http://example.com/search?query=
- http://example.com/search?p=
- http://example.com/index.php?page=
- http://example.com/gallery.php?id=
- http://example.com/redirect_uri=
- http://example.com/return_url=
- http://example.com/next=
- http://example.com/index.php?name=
- http://example.com/Default.aspx?action=
- http://example.com/index.php?page=
- http://example.com/get.php?file=
- http://example.com/product.php?id=
- http://example.com/basket.php?add=
- http://example.com/form.php?id=
- http://example.com/*.php
- …будь-які інші URL з динамічними, числовими і т.п. параметрами.
Аналіз вихідного коду (Source Code Analysis)
На цьому етапі перевіряється вихідний веб-код сайту: чи валідний він, чи в ньому немає шкідливого коду, чи застосовуються безпечні методи кодування, чи немає витоків конфіденційної інформації у коді.
Оглядаючи код, варто звернути увагу на наявність будь-яких ідентифікаторів ID, API-ключів, токенів, сесій. Також провести перевірку валідності, виявити не закриті або застарілі теги, коментарі.
Особливо рекомендується звернути увагу на функції, які отримують параметри через GET-запити, до прикладу:
include()require()include_once()require_once()fopen()$_GET['file']$_GET['page']$_GET['url']$_GET['name']$_GET['id']$_GET['action']
Інструменти, додатки, сервіси:
- Trufflehog
- Snyk
- WebHint.io
- W3C валідатори веб-коду
- Розширення для браузера Firefox Mozilla
- RIPS – PHP Security Analysis
- OWASP Source Code Analysis Tools
Приклади команд:
npx hint [hostname]— сканування вихідного коду сайту і пошук вразливих технологій з допомогою сканера WebHint.io.snyk code test vuln.js— сканування вихідного коду вказаного файлу з допомогою Snyk CLI.

Важливо також перевіряти код не тільки з допомогою автоматичних інструментів, а й вручну. Автоматичні інструменти допомагають виявити очевидні помилки та недоліки, такі як синтаксичні помилки, неоптимальний код чи потенційні проблеми безпеки. Однак вони не завжди здатні виявити більш складні проблеми, такі як неправильне використання алгоритмів чи неочевидні баги.
Аналіз веб-елементів (аналіз POST/GET запитів)
Веб-елементи – це будь-які об’єкти та сутності на веб-сторінці, які формують DOM-структуру (структура документа, тіла сторінки), з якою взаємодіє користувач.
Під час ручної перевірки веб-елементів і аналізу GET/POST запитів можна виявити чимало помилок, слабких місць і точок входу, зокрема логічні помилки обробки даних, неправильне використання API, відсутність CSRF-токенів, численні вразливості до XSS/SQL-ін’єкцій, SSRF (Server Side Request Forgery) та інші аспекти, які можуть впливати на якість і надійність досліджуваного ресурсу.
Ось список веб-елементів на які я, зазвичай, звертаю увагу:
- Текстові поля
- Кнопки, радіобуттони
- Блоки
- Чекбокси
- Комбобокси, вкладки
- Випадаючі списки
- Форми (теги <input value=””>):
- Форми входу (перевірка форми авторизації на брутфорс)
- Контактні форми (перевірка довжини полів, прийому спецсимволів і т.д.)
- Форми відправки даних (перевірка різних Content-Type)
- Форми завантаження (перевірка різних розширень файлів)
- Форми підписки
- Форми опитувань
- Форми завантаження аватарів
- Форми створення оголошень
- Коментарі, відгуки, гостьові книги
- Лістинги, сторінки товарів
- Галереї (фото-/відео-)
- Рейтинги, голосування
- Кукі (cookies)
- Закриваючі теги
- ….інші веб-елементи на сайті.
Деякі поради і рекомендації:
- Досліджуйте і вивчайте як формуються HTTP-запити, зокрема Get та Post запити (а також Head, Put, Delete, Options та інші), звертаючи увагу на коди відповіді і заголовки. Перехоплюйте і модифікуйте запити з допомогою Burp Suite або OWASP Zap – вони мають стати вашими “очима” і “руками”;
- Шукайте і вивчайте на веб-сторінках приховані поля, форми, параметри. Часто через них може передаватися конфіденційна інформація, наприклад токени, секретні коди, ліцензійні ключі і таке інше;
- Перевіряйте будь-які текстові поля, у які можна вставити XSS-payload (корисне або шкідливе навантаження). Це можуть бути поля при реєстрації акаунта, відправці повідомлення через контактну форму, відправка відгуків або публікація коментарів;
- Вивчайте параметри, які передаються в запитах API. Перевіряйте, чи не містять вони конфіденційну інформацію, таку як токени доступу, паролі або інші чутливі дані. Аналізуйте, чи захищений API від атак типу CSRF (Cross-Site Request Forgery) і чи правильно налаштована політика CORS (Cross-Origin Resource Sharing). Неправильна конфігурація може дозволити небезпечні запити до API з іншого домену;
- Обов’язково перевіряйте чи є на сайті форми завантаження файлів або відправки даних. Чи фільтруються завантажені файли? Чи є заборона на виконувані файли? Які назви файлів заборонені? Які розширення блокуються? Перевірте чи можна підмінити Content-Type і завантажити реверс шел.
- Обов’язково протестуйте такі механізми як – реєстрація і відновлення забутого паролю. До прикладу, на деяких сайтах функціонал “Forget password” може передавати в Response-відповідях секретні токени встановлення нового паролю, що приводить до компрометації усіх облікових записів.
- Рекомендуємо також ознайомитись з OWASP Web Security Testing Guide та OWASP Application Security Verification Standard. Ці документи містять фундаментальні рекомендації щодо підходу до аудиту і тестування безпеки веб-додатків.
Ідентифікація та оцінка вразливостей
Провівши сканування і виявивши вразливості, необхідно провести їх ідентифікацію та оцінку, що є частиною Менеджменту вразливостей (Vulnerability Management / Risk Assessment).
Тут допоможуть CVE (Common Vulnerabilities and Exposures) та CWE (Common Weakness Enumeration) системи – це бази даних, які систематизують інформацію про різні вразливості та класифікують їх.
Кожній вразливості в системах CVE/CWE призначається ідентифікатор. По суті, це стандартизовані словники загальновідомих вразливостей і ризиків. Вони наповнюються і підтримуються світовою спільнотою з кібербезпеи. Відрізняються вони один від одного лише тим, що у базу CVE потрапляють конкретні вразливості, а в CWE – категорії.
Ось список популярних CVE/CWE баз даних:
- Acunetix CVE
- WPScan CVE
- MITRE CWE
- NIST CVE
- Tenable CVE
- CVEdetails
- VulDB
- Patchstack WordPress CVE
- Wordfence CVE
- Snyk CVE
- OSVDB
Окрім того, існують бази даних експлойтів, які можуть знадобитися для того, щоб оцінити критичність, зрозуміти як ті чи інші вразливості можуть бути проексплуатовані:
Важливим інструментом є Common Vulnerability Scoring System (CVSS) – це відкрита стандартизована система оцінки вразливостей, яка використовує список CVE та інші джерела для отримання числової оцінки критичності вразливості. Система була розроблена об’єднанням груп реагування на інциденти та безпеку FIRST (Forum of Incident Response and Security Teams) у співпраці з NIST. Автори: Peter Mell, Karen Scarfone, Sasha Romanosky.
- CVSS оцінює вразливість по 10-бальній шкалі;
- CVSS допомагає спеціалістам з кібербезпеки пріоритезувати ризики і підготувати рішення щодо їх усунення;
- Калькулятор CVSS існує в різних версіях: CVSS 1.0 (2005), CVSS 2.0 (2007), CVSS 3.0 (2015), CVSS 4.0 (2023).
Таблиця оцінювання знайдених вразливостей за шкалою CVSS:
| Ступінь критичності | Бал CVSS | Опис |
| Critical | 9.0 – 10 | Критичний рівень вразливості, який однозначно призводить до несанкціонованого доступу, зламу або втрати даних. Потребує негайного реагування. |
| High | 7.0 – 8.9 | Високий рівень вразливості, що може призвести до несанкціонованого доступу, зламу, втрати або компрометації даних. Потребує негайного реагування. |
| Medium | 4.0 – 6.9 | Cередній рівень вразливості, що за певних обставин та дій може призвести до несанкціонованого доступу, зламу, втрати або компрометації даних. Потребує реагування в найкоротші терміни. |
| Low | 1.0 – 3.9 | Низький рівень вразливості, що у поєднанні з іншими вразливостями може являти потенційний ризик, що призводить до несанкціонованого доступу, зламу або втрати даних. Потребує своєчасного, планового реагування. |
| Info | 0.1 – 0.9 | Інформаційний рівень вразливості, що являє собою додаткові відомості, які можуть сприяти подальшій розвідці та плануванню зловмисних атак на ресурс. Потребує ретельного аналізу. |
CVSS версії 3.1 складається з таких метрик:
- Attack Vector (AV) — вектор атаки, визначає, який рівень доступу потрібен зловмиснику для здійснення атаки. Тут можна обрати 4 рівня: Network (N), Adjacent (A), Local (L), Physical (P). Для веб-додатків, доступ до яких здійснюється через Інтернет, ця оцінка завжди буде Network (Мережа).
- Attack Complexity (AC) — складність атаки: Low (L) або High (H). Високий рівень складності передбачає, що зловмисник повинен мати привілейовані або внутрішні знання про ціль, щоб здійснити атаку. Низький рівень – атаку можна здійснити без спеціальних знань про ціль.
- Privileges Required (PR) — рівень привілегій, містить три значення: None (N), Low (L), High (H). Якщо атаку можна здійснити без автентифікації, встановлюємо значення None (N). Якщо зловмисник отримав доступ до системи з привілеями звичайного користувача – ставимо Low (L). Якщо цей обліковий запис з привілеями адміністратора – ставимо High (H).
- User Interaction (UI) — взаємодія з користувачем, містить два значення: None (N) та Required (R). Наприклад, якщо для здійснення атаки зловмисник повинен взаємодіяти з іншою особою, яка має доступ, тоді обираємо Required (R).
- Scope (S) — вплив на інші компоненти системи, Unchanged (U) або Changed (C). Якщо зловмисники в результаті експлуатації вразливості можуть отримати додатковий доступ – ставимо Changed (C).
- Confidentiality (C) — вплив на конфіденційність, None (N), Low (L), High (H). Якщо атака може призвести до зчитування особистих даних, то має місце вплив на конфіденційність. Низький рівень означає, що зловмисники можуть читати лише обмежені або часткові дані, тоді як високий означає, що зловмисники можуть читати будь-які дані, які їм потрібні, використовуючи вразливість.
- Integrity (I) — вплив на цілісність, None (N), Low (L) або High (H). Цілісність стосується модифікації даних. Якщо доступ обмежений, то він має низький рівень. Якщо зловмисники можуть змінити будь-які дані – високий рівень.
- Availablity (A) — вплив на доступність, None (N), Low (L), High (H). Означає, що атака може викликати перебої в роботі і доступності веб-додатка, наприклад відмову в обслуговуванні. Низький означає, що додаток може продовжувати працювати, але відчуваючи високе навантаження і перебої. Якщо ж додаток недоступний доти, поки виконується атака, або довше – обираємо високий рівень.
Підготовка звіту
В результаті проведення вищеперелічених дій по кожній знайденій вразливості у звіті аудитора повинна бути присутня настуна таблиця:
| НАЗВА І ПОРЯДКОВИЙ НОМЕР ВРАЗЛИВОСТІ | |||
| Класифікація: | HIGH | CVE-ID, CWE-ID | CVSS Score: x.x |
| Шлях: | [hostname/path] – домен або ресурс на якому знайдена вразливість | ||
| Опис / Технічні деталі: | Proof of Concept (POC): Детальний опис кроків, які приводять до вразливості. Вказати команди, які були використані, посилання, текст HTTP-запитів та інші технічні деталі. | ||
| Підтвердження (Evidence): | Скріншоти і відео, які засвідчують факт наявності вразливості. | ||
| Вплив (Impact): | Опис впливу: Що може зробити зловмисник з допомогою цієї вразливості? До якої інформації він може отримати доступ? Як це впливає на цільову систему? До яких наслідків може призвести експлуатація вразливості? | ||
| Рекомендації: | Список рекомендацій як можна усунути вразливість. | ||
| Джерела: | Список джерел, посилання на документації і матеріали про знайдену вразливість. | ||
Ця структура є умовною, але вона дозволяє зібрати усі необхідні дані для кожної вразливості, забезпечуючи чітке розуміння проблеми та шляхів її вирішення.
Вона є надзвичайно корисною для власника досліджуваного ресурсу з кількох причин:
- ОГЛЯД ВРАЗЛИВОСТЕЙ
- Зручність перегляду: Таблиця надає зручний формат для перегляду та аналізу вразливостей.
- Узагальнена інформація: Усі важливі деталі вразливості зібрані в одному місці, що полегшує розуміння масштабів та серйозності проблеми.
- ПРІОРИТИЗАЦІЯ ВРАЗЛТВОСТЕЙ
- Оцінка критичності: CVSS оцінка допомагає клієнту визначити, які вразливості потребують негайного виправлення, а які можуть бути відкладені.
- Фокусування ресурсів: Клієнт може ефективно розподіляти ресурси для усунення найсерйозніших вразливостей перш за все.
- УСУНЕННЯ ВРАЗЛИВОСТЕЙ
- Рекомендації щодо виправлення: Рекомендації надають чіткі вказівки щодо дій, які слід виконати для усунення або зменшення впливу вразливостей.
- Патчі та оновлення: Інформація про наявні патчі та оновлення допомагає швидко знайти та застосувати виправлення.
- РОЗУМІННЯ ВПЛИВУ ВРАЗЛИВОСТЕЙ
- Опис впливу: Інформація про потенційний вплив вразливостей на конфіденційність, цілісність та доступність допомагає клієнту оцінити ризики для бізнесу.
- Експлойтабельність: Відомості про те, наскільки легко експлуатувати вразливість, допомагають зрозуміти терміновість і необхідність виправлення.
- ПЛАНУВАННЯ ЗАХИСТУ ВІД ВРАЗЛИВОСТЕЙ
- Додаткові примітки: Додаткова інформація може містити корисні поради для покращення загальної стратегії кібербезпеки.
- Метод виявлення: Розуміння методів виявлення допомагає клієнту вдосконалювати свої інструменти та процеси для майбутніх перевірок безпеки.
Корисні посилання
- Bug Hunters Fundamentals
- Bug Hunters Methodology
- Dana Epp Blog
- Orange Tsai Blog
- Intigriti Blog. Identifying the server’s origin IP behind popular reverse proxies
- GitHub. AllAboutBugBounty
Автор: © Konrad Ravenstone, KR. Laboratories Research









