Existen dos opciones para crear nuevos "payloads", una, editar el fichero "payloads.xml" y añadirlo donde creamos oportuno, y otra, añadirlo a un nuevo fichero xml de definición de "payloads". Al arrancar el programa se cargarán todos los ficheros xml con "payloads" del directorio actual. Si deseamos cargar los "payloads" contenidos en otro directorio, podremos usar la opción "-p <path>".


El formato de los "payloads" es el siguiente:

<payload name="nombre" comments="descripción del payload">
<item tipo="valor" separator="-">
<item tipo="valor">
...
</payload>

Donde tipo y valor deberán de ser una de las siguientes opciones:

Tipo  Valor
Ejemplos
values Valores separados por comas.
(a menos que se especifique otro valor con "separator")
values="lunes,martes,miercoles,jueves,viernes,sabado,domingo"
values="par,impar"
charset
Cadena con los valores a usar. Similar a "values" en el que
cada elemento ocupa solamente un carácter.
charset="0123456789"
charset="abcdefghijklmnopqrstuvwxyz"
file
Nombre del fichero a leer. file="sql_inj.txt"
range
Rango en formato "inicial:final" range="0:9"
range="a:z"
range="0000:9999"

La propiedad "separator" tiene una función especial y es, en una lista de valores (tipo "values"), indicar un alternativo a la coma (,). Por ejemplo: <item values="1-2-3-4-5-6-7-8-9-0" separator="-">

El "payload" final generado se obtiene "expandiendo" cada uno de los "items" en sus valores, combinándose posteriormente éstos con los obtenidos en los restantes "items".


Este sencillo ejemplo:

<payload name="prueba1" comments="mi primer payload">
   <item values=",no">
   <item values=" me">
   <item values=" gusta, aburre">
   <item values=" el futbol">
</payload>

Generaría los siguientes "payloads":

me gusta el futbol
me aburre el futbol
no me gusta el futbol
no me aburre el futbol

Ahora, si quisiésemos usarlo con Pipper, podríamos hacer lo siguiente:

./pipper.plhttp://www.servidor.com/foro/publish.php "topic=[prueba1]&text=to+pipper+or+not+to+pipper"

Paso de parámetros

Resulta posible pasar parámetros a los "payloads", tal y como ocurre con "file", "fileExt" y "range".

Estos parámetros se pasan desde la línea de comandos con la opción "-v". Por ejemplo, en la siguiente petición:

./pipper.pl http://www.servidor.com/[fileExt] -v file=/wordlists/big.txt,ext=-.php-.inc -r -hc 400,404

Tanto "file" como "ext" son parámetros que se pasan a "fileExt". Si nos fijamos la definición de este "payload", podremos ver donde usa esos parámetros:

<payload name="fileExt" comments="Varios: Comprueba existencia fichero con ext. Params: [file] [ext]">
   <item file="[file]">
   <item values="[ext]" separator="-">
</payload>

Resulta conveniente, pero no indispensable, indicar en los comentarios si ese "payload" necesita o no parámetros adicionales.

En este ejemplo podemos ver que se ha usado como delimitador el carácter "-". Ésto resulta necesario, al menos de momento, ya que si usásemos una coma ",", el programa no sabría distinguir si lo que viene después de ella es un nuevo parámetro o un valor.

© Copyright S21sec Gestión S.A