{"id":478257,"date":"2023-08-09T09:29:53","date_gmt":"2023-08-09T09:29:53","guid":{"rendered":""},"modified":"2023-09-05T11:16:22","modified_gmt":"2023-09-05T11:16:22","slug":"ognl-injection","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/fr\/wiki\/ognl-injection\/","title":{"rendered":"Injection d&#039;OGNL"},"content":{"rendered":"<p>Br\u00e8ves informations sur l&#039;injection d&#039;OGNL<\/p>\n<p>L&#039;injection OGNL (Object-Graph Navigation Language) est un type de vuln\u00e9rabilit\u00e9 de s\u00e9curit\u00e9 qui permet \u00e0 un attaquant d&#039;ex\u00e9cuter du code arbitraire sur le serveur d&#039;une application Web. Cette forme d&#039;attaque consiste \u00e0 exploiter les expressions OGNL utilis\u00e9es dans certains frameworks web, notamment Apache Struts. L\u2019injection d\u2019OGNL pourrait entra\u00eener une divulgation non autoris\u00e9e d\u2019informations, une modification des donn\u00e9es ou m\u00eame une compromission compl\u00e8te du syst\u00e8me.<\/p>\n<h2>L&#039;histoire de l&#039;origine de l&#039;injection d&#039;OGNL et sa premi\u00e8re mention<\/h2>\n<p>L&#039;injection OGNL s&#039;est fait conna\u00eetre parall\u00e8lement \u00e0 la croissance des applications et des frameworks Web qui s&#039;appuyaient sur les expressions OGNL \u00e0 diverses fins, telles que la manipulation de donn\u00e9es et le rendu de l&#039;interface utilisateur. Apache Struts, un framework open source populaire pour le d\u00e9veloppement d&#039;applications Web Java, est devenu la principale victime de cette vuln\u00e9rabilit\u00e9.<\/p>\n<p>La premi\u00e8re mention publique de l&#039;injection OGNL remonte \u00e0 2011, lorsqu&#039;un chercheur a identifi\u00e9 une vuln\u00e9rabilit\u00e9 dans Apache Struts2. Cette r\u00e9v\u00e9lation a marqu\u00e9 le d\u00e9but d\u2019une s\u00e9rie d\u2019enqu\u00eates et de d\u00e9couvertes plus approfondies sur les risques et les vecteurs d\u2019attaque associ\u00e9s \u00e0 OGNL.<\/p>\n<h2>Informations d\u00e9taill\u00e9es sur l&#039;injection OGNL\u00a0: \u00e9largissement du sujet Injection OGNL<\/h2>\n<p>L&#039;injection OGNL ne se limite pas \u00e0 Apache Struts, mais peut \u00e9galement affecter d&#039;autres frameworks qui utilisent OGNL. Ce langage d&#039;expression puissant est con\u00e7u pour obtenir et d\u00e9finir les propri\u00e9t\u00e9s des objets Java. Les attaquants peuvent cr\u00e9er des expressions OGNL malveillantes qui, lorsqu&#039;elles sont \u00e9valu\u00e9es par le serveur, ex\u00e9cutent du code Java arbitraire.<\/p>\n<h3>Gravit\u00e9<\/h3>\n<p>L\u2019injection d\u2019OGNL peut entra\u00eener de graves dommages \u00e0 une application ou \u00e0 un syst\u00e8me. Elle peut conduire \u00e0:<\/p>\n<ul>\n<li>L&#039;acc\u00e8s non autoris\u00e9<\/li>\n<li>Manipulation de donn\u00e9es<\/li>\n<li>Reprise du syst\u00e8me<\/li>\n<\/ul>\n<h3>Vecteurs d&#039;attaque<\/h3>\n<p>Les attaquants exploitent une gestion non s\u00e9curis\u00e9e des entr\u00e9es utilisateur et manipulent les expressions OGNL. Les vecteurs d&#039;attaque typiques comprennent\u00a0:<\/p>\n<ul>\n<li>Manipulation des requ\u00eates HTTP<\/li>\n<li>Cr\u00e9ation d&#039;URL malveillantes<\/li>\n<li>Modification des param\u00e8tres du formulaire<\/li>\n<\/ul>\n<h2>La structure interne de l\u2019injection OGNL\u00a0: comment fonctionne l\u2019injection OGNL<\/h2>\n<p>L&#039;injection OGNL se produit lorsqu&#039;un attaquant parvient \u00e0 injecter des expressions OGNL malveillantes dans l&#039;entr\u00e9e de l&#039;application. Voici une description \u00e9tape par \u00e9tape du fonctionnement de l\u2019injection OGNL\u00a0:<\/p>\n<ol>\n<li><strong>Gestion des entr\u00e9es utilisateur<\/strong>: L&#039;application g\u00e8re de mani\u00e8re incorrecte les entr\u00e9es utilisateur contenant une expression OGNL.<\/li>\n<li><strong>Analyse d&#039;expressions<\/strong>: Le serveur analyse l&#039;expression malveillante.<\/li>\n<li><strong>Ex\u00e9cution de code<\/strong>: L&#039;expression est \u00e9valu\u00e9e, conduisant \u00e0 l&#039;ex\u00e9cution de code arbitraire sur le serveur.<\/li>\n<li><strong>R\u00e9sultat de l&#039;attaque<\/strong>: L&#039;attaquant obtient un contr\u00f4le ou un acc\u00e8s non autoris\u00e9 \u00e0 des donn\u00e9es sensibles.<\/li>\n<\/ol>\n<h2>Analyse des principales caract\u00e9ristiques de l&#039;injection OGNL<\/h2>\n<p>L&#039;injection OGNL se distingue par plusieurs caract\u00e9ristiques\u00a0:<\/p>\n<ul>\n<li><strong>Polyvalence<\/strong>: Il peut \u00eatre utilis\u00e9 \u00e0 diverses fins malveillantes, du vol de donn\u00e9es au contr\u00f4le complet du syst\u00e8me.<\/li>\n<li><strong>Complexit\u00e9<\/strong>: La cr\u00e9ation des expressions OGNL malveillantes n\u00e9cessite une connaissance de l&#039;environnement Java et du framework sp\u00e9cifique.<\/li>\n<li><strong>Fort impact<\/strong>: Les d\u00e9g\u00e2ts potentiels d&#039;une attaque r\u00e9ussie sont importants.<\/li>\n<li><strong>Difficile d&#039;att\u00e9nuer<\/strong>: S\u00e9curiser correctement une application contre l&#039;injection OGNL n\u00e9cessite une validation minutieuse des entr\u00e9es et une configuration appropri\u00e9e du framework.<\/li>\n<\/ul>\n<h2>Types d&#039;injection OGNL\u00a0: utilisez des tableaux et des listes pour \u00e9crire<\/h2>\n<p>Il existe principalement deux types d\u2019injection d\u2019OGNL\u00a0:<\/p>\n<table>\n<thead>\n<tr>\n<th>Taper<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Injection OGNL classique<\/td>\n<td>Exploite la gestion non s\u00e9curis\u00e9e des entr\u00e9es utilisateur et conduit \u00e0 l\u2019ex\u00e9cution de code arbitraire.<\/td>\n<\/tr>\n<tr>\n<td>Injection aveugle d&#039;OGNL<\/td>\n<td>Une variante plus furtive dans laquelle l&#039;attaquant d\u00e9duit des informations par des moyens indirects, par exemple en observant les temps de r\u00e9ponse.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Fa\u00e7ons d&#039;utiliser l&#039;injection OGNL, probl\u00e8mes et leurs solutions li\u00e9es \u00e0 l&#039;utilisation<\/h2>\n<h3>Fa\u00e7ons d&#039;utiliser<\/h3>\n<ol>\n<li><strong>Divulgation d&#039;information<\/strong>: Extraction des informations sensibles du serveur.<\/li>\n<li><strong>L&#039;acc\u00e8s non autoris\u00e9<\/strong>: Contournement des m\u00e9canismes d&#039;authentification.<\/li>\n<li><strong>Compromission du syst\u00e8me<\/strong>: Reprise de l&#039;ensemble du syst\u00e8me.<\/li>\n<\/ol>\n<h3>Probl\u00e8mes et solutions<\/h3>\n<ul>\n<li><strong>Probl\u00e8me<\/strong>: Gestion non s\u00e9curis\u00e9e des entr\u00e9es utilisateur\n<ul>\n<li><strong>Solution<\/strong>: Impl\u00e9mentez une validation et une d\u00e9sinfection strictes des entr\u00e9es.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Probl\u00e8me<\/strong>: Mauvaise configuration du Framework\n<ul>\n<li><strong>Solution<\/strong>\u00a0: appliquez les configurations de s\u00e9curit\u00e9 appropri\u00e9es et mettez r\u00e9guli\u00e8rement \u00e0 jour le framework vers les versions corrig\u00e9es.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Principales caract\u00e9ristiques et autres comparaisons avec des termes similaires sous forme de tableaux et de listes<\/h2>\n<table>\n<thead>\n<tr>\n<th>Fonctionnalit\u00e9<\/th>\n<th>OGNL Injection<\/th>\n<th>Injection SQL<\/th>\n<th>Injection de commandes<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Cible d&#039;attaque<\/td>\n<td>Expressions OGNL<\/td>\n<td>Requ\u00eates SQL<\/td>\n<td>Commandes syst\u00e8me<\/td>\n<\/tr>\n<tr>\n<td>Impact<\/td>\n<td>Haut<\/td>\n<td>Haut<\/td>\n<td>Haut<\/td>\n<\/tr>\n<tr>\n<td>Complexit\u00e9<\/td>\n<td>Mod\u00e9r\u00e9 \u00e0 \u00e9lev\u00e9<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<td>Mod\u00e9r\u00e9<\/td>\n<\/tr>\n<tr>\n<td>Att\u00e9nuation typique<\/td>\n<td>Validation des entr\u00e9es<\/td>\n<td>D\u00e9clarations pr\u00e9par\u00e9es<\/td>\n<td>Validation d&#039;entr\u00e9e, \u00e9chappement<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Perspectives et technologies du futur li\u00e9es \u00e0 l&#039;injection d&#039;OGNL<\/h2>\n<p>Le d\u00e9veloppement continu des frameworks Web et des langages de programmation fait \u00e9voluer continuellement le paysage des menaces, y compris l&#039;injection OGNL. Les perspectives futures comprennent\u00a0:<\/p>\n<ul>\n<li><strong>Techniques de d\u00e9tection avanc\u00e9es<\/strong>: Utiliser l&#039;apprentissage automatique et l&#039;IA pour d\u00e9tecter et pr\u00e9venir l&#039;injection d&#039;OGNL.<\/li>\n<li><strong>Am\u00e9liorations du cadre<\/strong>: Construire des cadres plus s\u00e9curis\u00e9s qui minimisent intrins\u00e8quement le risque d\u2019injection d\u2019OGNL.<\/li>\n<li><strong>Sensibilisation \u00e0 la s\u00e9curit\u00e9<\/strong>: Accro\u00eetre l&#039;\u00e9ducation et la sensibilisation des d\u00e9veloppeurs aux pratiques de codage s\u00e9curis\u00e9es.<\/li>\n<\/ul>\n<h2>Comment les serveurs proxy peuvent \u00eatre utilis\u00e9s ou associ\u00e9s \u00e0 l&#039;injection OGNL<\/h2>\n<p>Les serveurs proxy comme ceux fournis par OneProxy peuvent jouer un r\u00f4le \u00e0 la fois offensif et d\u00e9fensif concernant l&#039;injection d&#039;OGNL\u00a0:<\/p>\n<ul>\n<li><strong>R\u00f4le d\u00e9fensif<\/strong>: En d\u00e9ployant un serveur proxy correctement configur\u00e9, les organisations peuvent filtrer et surveiller le trafic, fournissant ainsi une couche de protection suppl\u00e9mentaire contre l&#039;injection OGNL.<\/li>\n<li><strong>R\u00f4le offensif<\/strong>: Les attaquants peuvent utiliser des serveurs proxy pour cacher leur identit\u00e9 tout en menant une attaque par injection OGNL, ce qui rend la d\u00e9tection et l&#039;attribution plus difficiles.<\/li>\n<\/ul>\n<h2>Liens connexes<\/h2>\n<ol>\n<li><a href=\"https:\/\/struts.apache.org\/security\/\" target=\"_new\" rel=\"noopener nofollow\">Bulletins de s\u00e9curit\u00e9 Apache Struts<\/a><\/li>\n<li><a href=\"https:\/\/owasp.org\/www-project-web-security-testing-guide\/latest\/4-Web_Application_Security_Testing\/07-Input_Validation_Testing\/12-Testing_for_OGNL_Injection\" target=\"_new\" rel=\"noopener nofollow\">Guide OWASP sur les tests d&#039;injection d&#039;OGNL<\/a><\/li>\n<li><a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/917.html\" target=\"_new\" rel=\"noopener nofollow\">D\u00e9tails CWE sur l\u2019injection d\u2019OGNL<\/a><\/li>\n<\/ol>\n<p>Ce guide complet fournit une compr\u00e9hension compl\u00e8te de l&#039;injection OGNL, mettant en \u00e9vidence son historique, ses m\u00e9canismes, ses fonctionnalit\u00e9s, ses types et sa relation avec les serveurs proxy comme OneProxy. Cela souligne la n\u00e9cessit\u00e9 de mesures de s\u00e9curit\u00e9 robustes pour se d\u00e9fendre contre des attaques aussi sophistiqu\u00e9es et extr\u00eamement dommageables.<\/p>","protected":false},"featured_media":478258,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-478257","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>OGNL Injection<\/mark>","faq_items":[{"question":"What is OGNL Injection?","answer":"<p>OGNL Injection is a type of security vulnerability that allows an attacker to execute arbitrary code on a web application's server by exploiting OGNL expressions, which are commonly used in certain web frameworks like Apache Struts. The impact can range from unauthorized information disclosure to complete system compromise.<\/p>"},{"question":"What are the main types of OGNL Injection?","answer":"<p>There are primarily two types of OGNL Injection: Classic OGNL Injection, which exploits insecure handling of user inputs and leads to arbitrary code execution, and Blind OGNL Injection, a stealthier variant where the attacker gains information through indirect means, such as response times.<\/p>"},{"question":"How does OGNL Injection work?","answer":"<p>OGNL Injection occurs when an attacker injects malicious OGNL expressions into the application's input, which the server then parses and evaluates. This leads to the execution of arbitrary code on the server, and the attacker may gain unauthorized control or access to sensitive data.<\/p>"},{"question":"What are the key features of OGNL Injection?","answer":"<p>The key features of OGNL Injection include its versatility in malicious purposes, the complexity in crafting malicious expressions, the high impact resulting from a successful attack, and the difficulty in mitigating the vulnerability.<\/p>"},{"question":"How can OGNL Injection be prevented?","answer":"<p>OGNL Injection can be prevented by implementing strict input validation and sanitization, applying proper security configurations, and regularly updating the framework to patched versions.<\/p>"},{"question":"How is OGNL Injection different from other injections like SQL Injection?","answer":"<p>While OGNL Injection targets OGNL expressions and can lead to arbitrary code execution, SQL Injection targets SQL queries and can manipulate database queries. Command Injection, on the other hand, targets system commands. The impact is high for all these injections, but the targets and mitigation strategies vary.<\/p>"},{"question":"What are the future perspectives related to OGNL Injection?","answer":"<p>Future perspectives related to OGNL Injection include the development of advanced detection techniques using machine learning and AI, enhancements in web frameworks to minimize the risk, and increasing security awareness among developers.<\/p>"},{"question":"How can proxy servers like OneProxy be associated with OGNL Injection?","answer":"<p>Proxy servers like OneProxy can play a defensive role by filtering and monitoring traffic to provide protection against OGNL Injection. Conversely, attackers might also use proxy servers to hide their identity while conducting an OGNL Injection attack.<\/p>"},{"question":"Where can I find more information about OGNL Injection?","answer":"<p>You can find more information about OGNL Injection from sources like Apache Struts Security Bulletins, the OWASP Guide on Testing for OGNL Injection, and CWE details on OGNL Injection, all of which provide detailed insights into the vulnerability.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki\/478257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/wiki\/478257\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/media\/478258"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/fr\/wp-json\/wp\/v2\/media?parent=478257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}