JAVA
Identifier les entrées utilisateur
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
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