Tampering req.getParameter () Vs req.getAttribute () [closed]

1

Il seguente codice è vulnerabile? Se sì, come può essere sfruttato?

 <%
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" />
<% } %>
    
posta p_upadhyay 25.09.2012 - 14:33
fonte

2 risposte

2

getParameter () restituisce i parametri di richiesta http. Quelli passati dal client al server. Ad esempio link . Può solo restituire String

getAttribute () è solo per l'utilizzo lato server - si riempie la richiesta con gli attributi che è possibile utilizzare all'interno della stessa richiesta. Ad esempio: si imposta un attributo in un servlet e lo si legge da un JSP. Può essere usato per qualsiasi oggetto, non solo per la stringa.

Quindi la risposta semplice per la tua domanda è no , non puoi sfruttare request.getAttribute () con un proxy, dato che non hai accesso ai processi interni del server. Questo è ovviamente vero solo se il resto del programma è protetto e puoi fidarti degli attributi che stai richiedendo.

    
risposta data 26.09.2012 - 01:30
fonte
4

Sembra che potrebbe esserci una vulnerabilità open-reindirizzamento . Ciò potrebbe significare che un utente malintenzionato potrebbe creare un collegamento con il tuo URL e rendere il tuo sito Web reindirizzare l'utente a una pagina dannosa. L'utente, appena visualizzato il sito Web "attendibile" che appartiene a te, viene reindirizzato alla pagina Web dannosa, che potrebbe montare un attacco come CSRF / XSS. Quindi, anche se questo codice non presenta alcuna vulnerabilità in sé, può essere usato per lanciare altri attacchi gravi.

Riferimento: CWE 601

    
risposta data 25.09.2012 - 15:07
fonte

Leggi altre domande sui tag