hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md
2024-02-10 21:30:13 +00:00

154 lines
9.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 403 및 401 우회
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 AWS 해킹을 처음부터 전문가까지 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* 회사를 **HackTricks에서 광고하거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **Hacking 트릭을 공유하려면** [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하세요.
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**취약성 평가 및 펜테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서든 전체 펜테스트를 실행하고, 탐색부터 보고까지 수행할 수 있습니다. 우리는 펜테스터를 대체하지 않습니다 - 대신, 펜테스터가 더 깊이 파고들고, 쉘을 팝하고, 재미를 느낄 수 있도록 사용자 정의 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
## HTTP 동사/메서드 퍼징
파일에 접근하기 위해 **다른 동사**를 사용해보세요: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* 응답 헤더를 확인하고, 일부 정보를 얻을 수 있을 수도 있습니다. 예를 들어, `Content-Length: 55`와 함께 **HEAD**에 대한 **200 응답**은 **HEAD 동사가 정보에 접근할 수 있다는 것**을 의미합니다. 그러나 그 정보를 유출하는 방법을 찾아야 합니다.
* `X-HTTP-Method-Override: PUT`와 같은 HTTP 헤더를 사용하여 사용된 동사를 덮어쓸 수 있습니다.
* **`TRACE`** 동사를 사용하고, 운이 좋다면 응답에서 **중간 프록시가 추가한 헤더**도 볼 수 있을 수 있습니다.
## HTTP 헤더 퍼징
* **Host 헤더를 변경**하여 임의의 값으로 설정하세요 ([여기에서 작동한 것](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31)).
* 다른 [**사용자 에이전트**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt)를 사용하여 리소스에 접근해보세요.
* **HTTP 헤더 퍼징**: HTTP 프록시 **헤더**, HTTP 인증 기본 및 NTLM 브루트 포스 (일부 조합만 사용) 및 기타 기술을 시도해보세요. 이 모든 작업을 수행하기 위해 [**fuzzhttpbypass**](https://github.com/carlospolop/fuzzhttpbypass) 도구를 만들었습니다.
* `X-Originating-IP: 127.0.0.1`
* `X-Forwarded-For: 127.0.0.1`
* `X-Forwarded: 127.0.0.1`
* `Forwarded-For: 127.0.0.1`
* `X-Remote-IP: 127.0.0.1`
* `X-Remote-Addr: 127.0.0.1`
* `X-ProxyUser-Ip: 127.0.0.1`
* `X-Original-URL: 127.0.0.1`
* `Client-IP: 127.0.0.1`
* `True-Client-IP: 127.0.0.1`
* `Cluster-Client-IP: 127.0.0.1`
* `X-ProxyUser-Ip: 127.0.0.1`
* `Host: localhost`
**경로가 보호**되어 있다면 다음 헤더를 사용하여 경로 보호를 우회해볼 수 있습니다:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* 페이지가 **프록시 뒤에** 있는 경우, 개인 정보에 접근하는 것을 방지하는 것은 프록시일 수도 있습니다. [**HTTP 요청 스머글링**](../../pentesting-web/http-request-smuggling/) 또는 [**hop-by-hop 헤더**](../../pentesting-web/abusing-hop-by-hop-headers.md)를 남용해보세요.
* 다른 응답을 찾기 위해 [**특수 HTTP 헤더**](special-http-headers.md)를 퍼징해보세요.
* **HTTP 메서드**를 퍼징하는 동안 [**특수 HTTP 헤더**](special-http-headers.md)를 퍼징해보세요.
* **Host 헤더를 제거**하면 보호를 우회할 수 있을 수도 있습니다.
## 경로 퍼징
_/path_가 차단된 경우:
* _**/**_**%2e/path_를 사용해보세요 (액세스가 프록시에 의해 차단된 경우, 이를 우회할 수 있습니다). 또한 **\_\*\* /%252e\*\*/path** (이중 URL 인코딩)도 시도해보세요.
* **유니코드 우회**를 시도해보세요: _/**%ef%bc%8f**path_ (URL 인코딩된 문자는 "/"와 같습니다) 따라서 인코딩을 다시 하면 _//path_가 되어 이미 _/path_ 이름 확인을 우회한 것일 수도 있습니다.
* **다른 경로 우회**:
* site.com/secret > HTTP 403 Forbidden
* site.com/SECRET > HTTP 200 OK
* site.com/secret/ > HTTP 200 OK
* site.com/secret/. > HTTP 200 OK
* site.com//secret// > HTTP 200 OK
* site.com/./secret/.. > HTTP 200 OK
* site.com/;/secret > HTTP 200 OK
* site.com/.;/secret > HTTP 200 OK
* site.com//;//secret > HTTP 200 OK
* site.com/secret.json > HTTP 200 OK (루비)
* 다음 상황에서 [**이 목록**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt)을 모두 사용하세요:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **다른 API 우회:**
* /v3/users\_data/1234 --> 403 Forbidden
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (JSON Parameter Pollution)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Parameter Pollution)
## **매개변수 조작**
* **param 값 변경**: **`id=123` --> `id=124`**
* URL에 추가 매개변수 추가: `?`**`id=124` —-> `id=124&isAdmin=true`**
* 매개변수 제거
* 매개변수 재정렬
* 특수 문자 사용
* 매개변수에서 경계 테스트 수행 - _-234_ 또는 _0_ 또는 _99999999_와 같은 값 제공 (일부 예시 값)
## **프로토콜 버전**
HTTP/1.1을 사용하는 경우 **1.0을 사용**하거나 **2.0을 지원**하는지 테스트합니다.
## **기타 우회 방법**
* 도메인의 **IP** 또는 **CNAME**을 가져와 **직접 연락**해보세요.
* 일반적인 GET 요청을 보내서 서버를 **스트레스 테스트**해보세요 ([이 사람에게는 페이스북에서 작동했습니다](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **프로토콜 변경**: http에서 https로 또는 https에서 http로 변경
* [**https://archive.org/web/**](https://archive.org/web/)에 가서 이전에 해당 파일이 **전 세계에서 접근 가능**한지 확인하세요.
## **브루트 포스**
* **비밀번호 추측**: 다음과 같은 일반적인 자격 증명을 테스트하세요. 피해자에 대해 알고 있는 정보가 있나요? 또는 CTF 챌린지 이름이 있나요?
* [**브루트 포스**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** 기본, 다이제스트 및 NTLM 인증을 시도하세요.
{% code title="일반 자격 증명" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
{% endcode %}
## 자동 도구
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
* [Burp Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디에서나 전체 펜테스트를 실행할 수 있습니다. 우리는 펜테스터를 대체하지 않습니다 - 우리는 펜테스터들에게 깊이 파고들고 쉘을 획득하며 즐길 수 있는 시간을 돌려주기 위해 맞춤형 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>htARTE (HackTricks AWS Red Team Expert)</strong>를 통해 제로에서 영웅까지 AWS 해킹을 배워보세요<strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* HackTricks에서 **회사 광고를 보거나 HackTricks를 PDF로 다운로드**하려면 [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스웨그**](https://peass.creator-spring.com)를 얻으세요.
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요. 독점적인 [**NFTs**](https://opensea.io/collection/the-peass-family) 컬렉션입니다.
* 💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 **참여**하거나 **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)를 **팔로우**하세요.
* **HackTricks**와 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github 저장소에 PR을 제출하여 여러분의 해킹 기법을 공유하세요.
</details>