Translated ['src/pentesting-web/rate-limit-bypass.md'] to ko

This commit is contained in:
Translator 2025-07-12 14:07:49 +00:00
parent 56259dba5a
commit adadf8bec4

View File

@ -38,7 +38,7 @@ user-agent 및 쿠키와 같은 다른 요청 헤더를 변경하는 것이 권
### 각 시도 전에 계정에 로그인하기
각 시도 또는 시도 세트 전에 계정에 로그인하면 속도 제한 카운터가 초기화될 수 있습니다. 이는 로그인 기능을 테스트할 때 특히 유용합니다. Burp Suite와 같은 도구에서 Pitchfork 공격을 활용하여 몇 번의 시도마다 자격 증명을 회전고 리디렉션을 따르도록 표시하면 속도 제한 카운터를 효과적으로 재시작할 수 있습니다.
각 시도 또는 시도 세트 전에 계정에 로그인하면 속도 제한 카운터가 재설정될 수 있습니다. 이는 로그인 기능을 테스트할 때 특히 유용합니다. Burp Suite와 같은 도구에서 Pitchfork 공격을 활용하여 몇 번의 시도마다 자격 증명을 회전시키고 리디렉션을 따르도록 표시하면 속도 제한 카운터를 효과적으로 재시작할 수 있습니다.
### 프록시 네트워크 활용하기
@ -52,8 +52,66 @@ user-agent 및 쿠키와 같은 다른 요청 헤더를 변경하는 것이 권
속도 제한이 설정되어 있더라도 유효한 OTP가 전송될 때 응답이 다른지 확인해 보아야 합니다. [**이 게시물**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732)에서 버그 헌터는 20번의 실패한 시도 후 401로 응답하더라도 속도 제한이 발생하더라도 유효한 OTP가 전송되면 200 응답을 받았다는 것을 발견했습니다.
### 도구
---
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): hashtag-fuzz는 WAF 및 CDN을 테스트하고 우회하기 위해 설계된 퍼징 도구입니다. 무작위 User-Agent 및 헤더 값, 무작위 지연, 다중 스레딩 처리, 단어 목록의 선택적 청크화 및 각 청크에 대한 라운드 로빈 프록시 회전을 활용하는 고급 기능을 통해 웹 애플리케이션의 취약점을 식별하려는 보안 전문가를 위한 강력한 솔루션을 제공합니다.
### HTTP/2 다중화 및 요청 파이프라이닝 남용하기 (2023-2025)
현대의 속도 제한기 구현은 종종 **TCP 연결**(또는 개별 HTTP/1.1 요청)을 계산하는 대신 연결이 포함하는 *HTTP/2 스트림 수*를 계산합니다. 동일한 TLS 연결이 재사용될 때, 공격자는 수백 개의 병렬 스트림을 열 수 있으며, 각 스트림은 별도의 요청을 전달하지만 게이트웨이는 할당량에서 *하나*의 요청만 차감합니다.
```bash
# Send 100 POST requests in a single HTTP/2 connection with curl
seq 1 100 | xargs -I@ -P0 curl -k --http2-prior-knowledge -X POST \
-H "Content-Type: application/json" \
-d '{"code":"@"}' https://target/api/v2/verify &>/dev/null
```
If the limiter protects only `/verify` but not `/api/v2/verify`, you can also combine **path confusion** with HTTP/2 multiplexing for *extremely* high-speed OTP or credential brute-forcing.
> 🐾 **Tip:** PortSwiggers [Turbo Intruder](https://portswigger.net/research/turbo-intruder) supports HTTP/2 and lets you fine-tune `maxConcurrentConnections` and `requestsPerConnection` to automate this attack.
### GraphQL aliases & batched operations
GraphQL은 클라이언트가 **하나의 요청에서 여러 개의 논리적으로 독립적인 쿼리 또는 변이를 전송할 수 있도록** *별칭*으로 접두사를 붙입니다. 서버는 모든 별칭을 실행하지만 속도 제한기는 종종 *하나*의 요청만 계산하기 때문에, 이는 로그인 또는 비밀번호 재설정 속도 제한을 우회하는 신뢰할 수 있는 방법입니다.
```graphql
mutation bruteForceOTP {
a: verify(code:"111111") { token }
b: verify(code:"222222") { token }
c: verify(code:"333333") { token }
# … add up to dozens of aliases …
}
```
정확히 하나의 별칭만이 올바른 코드가 호출될 때 200 OK를 반환하며, 나머지는 속도 제한이 있습니다.
이 기술은 2023년 PortSwigger의 “GraphQL batching & aliases” 연구에 의해 대중화되었으며, 최근 많은 버그 바운티 지급의 원인이 되었습니다.
### *배치* 또는 *대량* REST 엔드포인트의 남용
일부 API는 `/v2/batch`와 같은 도우미 엔드포인트를 노출하거나 요청 본문에서 **객체 배열**을 수락합니다. 제한기가 *구식* 엔드포인트 앞에만 배치된 경우, 여러 작업을 단일 대량 요청으로 감싸면 보호를 완전히 우회할 수 있습니다.
```json
[
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"123"}},
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"456"}}
]
```
### 타이밍 슬라이딩 윈도우
클래식 토큰-버킷 또는 리키-버킷 리미터는 *리셋*이 고정된 시간 경계에서 발생합니다 (예: 매 분마다). 윈도우가 알려져 있다면 (예: `X-RateLimit-Reset: 27`와 같은 오류 메시지를 통해), 버킷이 리셋되기 **직전**에 허용된 최대 요청 수를 발사한 다음, 즉시 또 다른 전체 폭발을 발사합니다.
```
|<-- 60 s window ->|<-- 60 s window ->|
###### ######
```
이 간단한 최적화는 다른 우회 기술을 건드리지 않고도 처리량을 두 배 이상 늘릴 수 있습니다.
---
## 도구
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): 헤더 무작위화, 청크 단어 목록 및 라운드 로빈 프록시 회전을 지원하는 퍼징 도구입니다.
- [**https://github.com/ustayready/fireprox**](https://github.com/ustayready/fireprox): 모든 요청이 다른 IP 주소에서 시작되도록 일회용 AWS API Gateway 엔드포인트를 자동으로 생성합니다 IP 기반 속도 제한을 무력화하는 데 완벽합니다.
- **Burp Suite IPRotate + 확장**: *Intruder**Turbo Intruder* 공격 중에 소스 IP를 투명하게 회전시키기 위해 SOCKS/HTTP 프록시(또는 AWS API Gateway) 풀을 사용합니다.
- **Turbo Intruder (BApp)**: HTTP/2 다중화를 지원하는 고성능 공격 엔진; 수백 개의 요청을 단일 연결로 축소하기 위해 `requestsPerConnection`을 100-1000으로 조정합니다.
## 참고문헌
- PortSwigger Research “GraphQL 별칭을 사용한 속도 제한 우회” (2023) <https://portswigger.net/research/graphql-authorization-bypass>
- PortSwigger Research “HTTP/2: 속편은 항상 더 나쁘다” (섹션 *연결 기반 속도 제한*) (2024) <https://portswigger.net/research/http2>
{{#include ../banners/hacktricks-training.md}}