Es el tipo de ataque por defecto y el más común de Burp Suite Intruder. Es particularmente efectivo para posiciones únicas de ataque como ataques de fuerza bruta en contraseñas o fuzzing endpoints de APIs. En un ataque Sniper, proporcionamos un conjunto de payloads que puede ser desde una lista de palabras hasta un rango de números y el Intruder lo inserta en la posición definida.
Tomemos la siguiente petición de ejemplo:
POST /support/login/ HTTP/1.1 Host: MACHINE_IP User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:80.0) Gecko/20100101 Firefox/80.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Content-Type: application/x-www-form-urlencoded Content-Length: 37 Origin: http://MACHINE_IP Connection: close Referer: http://MACHINE_IP/support/login/ Upgrade-Insecure-Requests: 1 username=§pentester§&password=§Expl01ted§
En este ejemplo tenemos dos posiciones definidas: username y password. En un ataque sniper, el intruder toma cada payload del conjunto de payloads u lo sustituye en cada una de las posiciones por turnos. Asumiendo un diccionario de tres palabras: burp, suite e intruder, el Intruder generaría seis peticiones:
| Número de Petición | Cuerpo de la Petición |
|---|---|
| 1 | username=burp&password=Expl01ted |
| 2 | username=suite&password=Expl01ted |
| 3 | username=intruder&password=Expl01ted |
| 4 | username=pentester&password=burp |
| 5 | username=pentester&password=suite |
| 6 | username=pentester&password=intruder |
Observa cómo al principio la segunda posición no la cambia y al final no toca la primera. La forma de calcular el número de peticiones es peticiones = numeroDePalabras * numeroDePosiciones. |
