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

154 lines
9 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 해킹 배우기**!</summary>
HackTricks를 지원하는 다른 방법:
* **회사가 HackTricks에 광고되길 원하거나** **HackTricks를 PDF로 다운로드**하고 싶다면 [**구독 요금제**](https://github.com/sponsors/carlospolop)를 확인하세요!
* [**공식 PEASS & HackTricks 스왜그**](https://peass.creator-spring.com)를 구매하세요
* [**The PEASS Family**](https://opensea.io/collection/the-peass-family)를 발견하세요, 저희의 독점 [**NFT 컬렉션**](https://opensea.io/collection/the-peass-family)
* **💬 [디스코드 그룹](https://discord.gg/hRep4RUj7f)** 또는 [텔레그램 그룹](https://t.me/peass)에 **가입**하거나 **트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우**하세요.
* **HackTricks** 및 **HackTricks Cloud** 깃허브 저장소에 PR을 제출하여 **해킹 트릭을 공유**하세요.
</details>
<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`
* 응답 헤더를 확인하고 어떤 정보가 제공되는지 확인하세요. 예를 들어, `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 헤더**를 퍼징하세요.
* **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 Unauthriozied
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Unauthriozied
* {“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)
## **매개변수 조작**
* **`id=123` --> `id=124`**로 **param value 변경**
* URL에 추가 매개변수 추가: `?`**`id=124` —-> `id=124&isAdmin=true`**
* 매개변수 제거
* 매개변수 재정렬
* 특수 문자 사용
* 매개변수에서 경계 테스트 수행 — _-234_ 또는 _0_ 또는 _99999999_와 같은 값 제공 (예시 값).
## **프로토콜 버전**
HTTP/1.1을 사용하는 경우 **1.0을 시도**하거나 심지어 **2.0을 지원하는지** 테스트.
## **기타 우회 방법**
* 도메인의 **IP** 또는 **CNAME**을 가져와 **직접 연락** 시도.
* 일반적인 GET 요청을 보내 서버를 **스트레스 테스트**.
* **프로토콜 변경**: 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 (14) (1).png" alt=""><figcaption></figcaption></figure>
**취약점 평가 및 침투 테스트를 위한 즉시 사용 가능한 설정**. 20개 이상의 도구 및 기능으로 어디서든 전체 펜테스트를 실행합니다. 우리는 펜테스터를 대체하지 않습니다 - 깊이 파고들고, 쉘을 열고, 즐기기 위해 사용자 정의 도구, 탐지 및 공격 모듈을 개발합니다.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>제로부터 영웅이 될 때까지 AWS 해킹을 배우세요</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
HackTricks를 지원하는 다른 방법:
* **회사를 HackTricks에서 광고하거나 PDF로 다운로드하고 싶다면** [**구독 요금제**](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) 컬렉션
* **💬 [**디스코드 그룹**](https://discord.gg/hRep4RUj7f)에 가입하거나 [**텔레그램 그룹**](https://t.me/peass)에 가입하거나** 트위터** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**를 팔로우하세요.**
* **HackTricks 및 HackTricks Cloud** github 저장소에 PR을 제출하여 **해킹 트릭을 공유하세요.**
</details>