Manipulación req.getParameter () Vs req.getAttribute () [cerrado]

1

¿Es el siguiente código vulnerable? Si es así, ¿cómo puede ser explotado?

 <%
Boolean redirectToSomeSite = (Boolean)request.getAttribute("redirectToSomeSite");
String someSiteUrl = (String)request.getAttribute("someSiteUrl");

if(redirectToSomeSite != null && redirectToSomeSite.booleanValue()) {
response.sendRedirect(someSiteUrl); 
 }else{
%>
<jsp:forward page="SomeAction.do?param1=value1" />
<% } %>
    
pregunta p_upadhyay 25.09.2012 - 14:33
fuente

2 respuestas

2

getParameter () devuelve los parámetros de solicitud http. Los pasados del cliente al servidor. Por ejemplo, enlace . Solo puedo devolver String

getAttribute () es solo para uso del lado del servidor; usted completa la solicitud con atributos que puede usar dentro de la misma solicitud. Por ejemplo, establece un atributo en un servlet y lo lee desde un JSP. Puede usarse para cualquier objeto, no solo para cadenas.

Entonces, la respuesta simple para su pregunta es no , no puede explotar request.getAttribute () con un proxy, ya que no tiene acceso a los procesos internos del servidor. Por supuesto, esto solo es cierto si el resto del programa está protegido y puede confiar en los atributos que está solicitando.

    
respondido por el Boaz Tirosh 26.09.2012 - 01:30
fuente
4

Parece que podría haber una vulnerabilidad de redirección abierta . Esto podría significar que un atacante podría crear un enlace con su URL y hacer que su sitio web redirija al usuario a una página maliciosa. El usuario, solo al ver el sitio web "confiable" que le pertenece a usted, se redirige a la página web malintencionada, que puede realizar un ataque como un CSRF / XSS. Entonces, aunque este código no tiene ninguna vulnerabilidad por parte de En sí mismo, se puede usar para lanzar otros ataques graves.

Referencia: CWE 601

    
respondido por el sudhacker 25.09.2012 - 15:07
fuente

Lea otras preguntas en las etiquetas