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:

python
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ónCuerpo de la Petición
1username=burp&password=Expl01ted
2username=suite&password=Expl01ted
3username=intruder&password=Expl01ted
4username=pentester&password=burp
5username=pentester&password=suite
6username=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.