JAVA

Identifier les entrées utilisateur

VariableDescription

getParameter

getParameterNames

getParameterValues

getParameterMap

Contient les interactions avec les paramètres d'une requête

getQueryString

Contient la chaîne de caractère de la requête entière

getHeader

getHeaders

getHeaderNames

Contient les en-têtes entrées

getRequestURI

getRequestURL

Contient les url et uri entrées

getCookies

Contient les cookies entrées

getRequestedSessionId

Contient les ID de session entrées

getInputStream

getReader

Contient les données brute d'une requête

getMethod

Contient la méthode HTTP utilisée

getProtocol

Contient le protocole utilisé

getServerName

Contenu de l'en-tête "Host:"

getRemoteUser

getUserPrincipal

Si l'utilisateur est authentifié, cela contient les informations de l'utilisateur.

setAttribute

putValue

Utilisées pour stocker des données dans la session courante

getAttribute

getValue

getAttributeNames

getValueNames

Utilisées pour demander des données stockées dans la session courante

SQLi

  • Statement

  • CallableStatement

  • PreparedStatement => Rarement vulnérable

  • executeUpdate()

  • execute()

  • executeQuery()

  • jdbc:

Open redirect

  • sendRedirect

  • setStatus

  • addHeader

Path traversal

  • filename

  • getrealPath()

  • getPathTranslated()

LFI

  • include()

  • require()

  • forward()

JSP LFI

  • <%@ include file="exemple.jsp" %>

  • <jsp:include page="exemple.jsp" />

Les exemples ci-dessus ne sont pas vulnérables, cependant si le fichier peut être défini avec une entrée utilisateur, il est possible d'exploiter une LFI

Exemple:

<jsp:include page='<%="browserActions/" + request.getParameter("_actionPage") + ".jsp"%>'

OS injection

  • getruntime()

  • exec()

XSS

  • <c> => Pas d'escaping

  • <c:out> => escaping

XXE

  • SAXParserFactory

  • DOM4J

  • DocumentBuilderFactory

  • XMLInputFactory

  • TransformerFactory

  • javax.xml.validation.Validator

  • SchemaFactory

  • SAXTransformerFactory

  • XMLReader

  • SAXBuilder

  • SAXReader

  • javax.xml.bind.Unmarshaller

  • XPathExpression

  • DOMSource

  • StAXSource

ELi

<spr(ing)?:(message|theme|transform|eval|hasBindErrors|bind|nestedpath)[^>]+${param

Sockets

  • java.net.Socket

Fichiers d'interet

  • WEB-INF/web.xml

Paramètres intéressants

ParamètreUtilité

login-config

Informations d'authentification + méthode d'authentification (forms-based, Basic Auth, Client-Cert). Si la méthode forms-based est utilisé, il est préférable d'utiliser l'action "j_security_check" ainsi que les paramètres "j_username" et j_password"

security-constraint

Ce paramètre permet de restreindre des accès aux rôles définis dans "role-name".

session-config

permet de configurer les paramètres de la session dont le timeout.

error-page

Permet de gérer les erreurs (code de status, type d'exception etc).

init-param

Contient des paramètres d'initialisation tels que "listings" qui doit être à false ou debug qui lui doit être à 0.

Dernière mise à jour