JAVA
Identifier les entrées utilisateur
Variable | Description |
---|---|
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ètre | Utilité |
---|---|
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