{"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\/pt\/wiki\/ognl-injection\/","title":{"rendered":"Inje\u00e7\u00e3o OGNL"},"content":{"rendered":"<p>Breve informa\u00e7\u00e3o sobre inje\u00e7\u00e3o de OGNL<\/p>\n<p>A inje\u00e7\u00e3o OGNL (Object-Graph Navigation Language) \u00e9 um tipo de vulnerabilidade de seguran\u00e7a que permite que um invasor execute c\u00f3digo arbitr\u00e1rio no servidor de um aplicativo da web. Esta forma de ataque envolve a explora\u00e7\u00e3o de express\u00f5es OGNL usadas em certas estruturas da web, principalmente no Apache Struts. A inje\u00e7\u00e3o de OGNL pode resultar na divulga\u00e7\u00e3o n\u00e3o autorizada de informa\u00e7\u00f5es, modifica\u00e7\u00e3o de dados ou at\u00e9 mesmo comprometimento total do sistema.<\/p>\n<h2>A hist\u00f3ria da origem da inje\u00e7\u00e3o OGNL e a primeira men\u00e7\u00e3o dela<\/h2>\n<p>A inje\u00e7\u00e3o OGNL tornou-se conhecida junto com o crescimento de aplica\u00e7\u00f5es web e estruturas que dependiam de express\u00f5es OGNL para diversos fins, como manipula\u00e7\u00e3o de dados e renderiza\u00e7\u00e3o de UI. Apache Struts, uma estrutura popular de c\u00f3digo aberto para desenvolvimento de aplicativos web Java, tornou-se a principal v\u00edtima desta vulnerabilidade.<\/p>\n<p>A primeira men\u00e7\u00e3o p\u00fablica \u00e0 inje\u00e7\u00e3o de OGNL foi em 2011, quando um pesquisador identificou uma vulnerabilidade no Apache Struts2. Esta revela\u00e7\u00e3o marcou o in\u00edcio de uma s\u00e9rie de investiga\u00e7\u00f5es e descobertas adicionais sobre os riscos e vetores de ataque associados ao OGNL.<\/p>\n<h2>Informa\u00e7\u00f5es detalhadas sobre inje\u00e7\u00e3o de OGNL: expandindo o t\u00f3pico inje\u00e7\u00e3o de OGNL<\/h2>\n<p>A inje\u00e7\u00e3o de OGNL n\u00e3o se limita apenas ao Apache Struts, mas tamb\u00e9m pode afetar outras estruturas que usam OGNL. Esta poderosa linguagem de express\u00e3o foi projetada para obter e definir propriedades de objetos Java. Os invasores podem criar express\u00f5es OGNL maliciosas que, quando avaliadas pelo servidor, executam c\u00f3digo Java arbitr\u00e1rio.<\/p>\n<h3>Gravidade<\/h3>\n<p>A inje\u00e7\u00e3o de OGNL pode resultar em danos graves a uma aplica\u00e7\u00e3o ou sistema. Isso pode conduzir a:<\/p>\n<ul>\n<li>Acesso n\u00e3o autorizado<\/li>\n<li>Manipula\u00e7\u00e3o de dados<\/li>\n<li>Aquisi\u00e7\u00e3o do sistema<\/li>\n<\/ul>\n<h3>Vetores de ataque<\/h3>\n<p>Os invasores exploram o tratamento inseguro da entrada do usu\u00e1rio e manipulam express\u00f5es OGNL. Os vetores de ataque t\u00edpicos incluem:<\/p>\n<ul>\n<li>Manipulando solicita\u00e7\u00f5es HTTP<\/li>\n<li>Cria\u00e7\u00e3o de URLs maliciosos<\/li>\n<li>Alterando par\u00e2metros do formul\u00e1rio<\/li>\n<\/ul>\n<h2>A estrutura interna da inje\u00e7\u00e3o OGNL: como funciona a inje\u00e7\u00e3o OGNL<\/h2>\n<p>A inje\u00e7\u00e3o de OGNL ocorre quando um invasor consegue injetar express\u00f5es OGNL maliciosas na entrada do aplicativo. Aqui est\u00e1 uma an\u00e1lise passo a passo de como funciona a inje\u00e7\u00e3o de OGNL:<\/p>\n<ol>\n<li><strong>Tratamento de entrada do usu\u00e1rio<\/strong>: o aplicativo manipula incorretamente a entrada do usu\u00e1rio que cont\u00e9m uma express\u00e3o OGNL.<\/li>\n<li><strong>An\u00e1lise de express\u00e3o<\/strong>: o servidor analisa a express\u00e3o maliciosa.<\/li>\n<li><strong>Execu\u00e7\u00e3o de c\u00f3digo<\/strong>: a express\u00e3o \u00e9 avaliada, levando \u00e0 execu\u00e7\u00e3o de c\u00f3digo arbitr\u00e1rio no servidor.<\/li>\n<li><strong>Resultado do Ataque<\/strong>: o invasor obt\u00e9m controle ou acesso n\u00e3o autorizado a dados confidenciais.<\/li>\n<\/ol>\n<h2>An\u00e1lise dos principais recursos da inje\u00e7\u00e3o OGNL<\/h2>\n<p>A inje\u00e7\u00e3o OGNL se destaca por v\u00e1rios recursos:<\/p>\n<ul>\n<li><strong>Versatilidade<\/strong>: pode ser usado para diversos fins maliciosos, desde roubo de dados at\u00e9 controle completo do sistema.<\/li>\n<li><strong>Complexidade<\/strong>: A elabora\u00e7\u00e3o de express\u00f5es OGNL maliciosas requer conhecimento do ambiente Java e da estrutura espec\u00edfica.<\/li>\n<li><strong>Alto impacto<\/strong>: O dano potencial de um ataque bem-sucedido \u00e9 significativo.<\/li>\n<li><strong>Dif\u00edcil de mitigar<\/strong>: proteger adequadamente um aplicativo contra inje\u00e7\u00e3o OGNL requer valida\u00e7\u00e3o de entrada cuidadosa e configura\u00e7\u00e3o adequada da estrutura.<\/li>\n<\/ul>\n<h2>Tipos de inje\u00e7\u00e3o OGNL: use tabelas e listas para escrever<\/h2>\n<p>Existem basicamente dois tipos de inje\u00e7\u00e3o de OGNL:<\/p>\n<table>\n<thead>\n<tr>\n<th>Tipo<\/th>\n<th>Descri\u00e7\u00e3o<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Inje\u00e7\u00e3o OGNL Cl\u00e1ssica<\/td>\n<td>Explora o manuseio inseguro de entradas do usu\u00e1rio e leva \u00e0 execu\u00e7\u00e3o arbitr\u00e1ria de c\u00f3digo.<\/td>\n<\/tr>\n<tr>\n<td>Inje\u00e7\u00e3o cega de OGNL<\/td>\n<td>Uma variante mais furtiva, onde o invasor infere informa\u00e7\u00f5es por meios indiretos, como observando os tempos de resposta.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Maneiras de usar a inje\u00e7\u00e3o OGNL, problemas e suas solu\u00e7\u00f5es relacionadas ao uso<\/h2>\n<h3>Maneiras de usar<\/h3>\n<ol>\n<li><strong>Divulga\u00e7\u00e3o de informa\u00e7\u00e3o<\/strong>: Extraindo informa\u00e7\u00f5es confidenciais do servidor.<\/li>\n<li><strong>Acesso n\u00e3o autorizado<\/strong>: Ignorando mecanismos de autentica\u00e7\u00e3o.<\/li>\n<li><strong>Comprometimento do sistema<\/strong>: Assumindo todo o sistema.<\/li>\n<\/ol>\n<h3>Problemas e solu\u00e7\u00f5es<\/h3>\n<ul>\n<li><strong>Problema<\/strong>: Tratamento inseguro de entradas do usu\u00e1rio\n<ul>\n<li><strong>Solu\u00e7\u00e3o<\/strong>: Implemente valida\u00e7\u00e3o e higieniza\u00e7\u00e3o de entrada rigorosas.<\/li>\n<\/ul>\n<\/li>\n<li><strong>Problema<\/strong>: Configura\u00e7\u00e3o incorreta do Framework\n<ul>\n<li><strong>Solu\u00e7\u00e3o<\/strong>: aplique configura\u00e7\u00f5es de seguran\u00e7a adequadas e atualize regularmente a estrutura para vers\u00f5es corrigidas.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>Principais caracter\u00edsticas e outras compara\u00e7\u00f5es com termos semelhantes na forma de tabelas e listas<\/h2>\n<table>\n<thead>\n<tr>\n<th>Recurso<\/th>\n<th>Inje\u00e7\u00e3o OGNL<\/th>\n<th>Inje\u00e7\u00e3o SQL<\/th>\n<th>Inje\u00e7\u00e3o de comando<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Alvo de ataque<\/td>\n<td>Express\u00f5es OGNL<\/td>\n<td>Consultas SQL<\/td>\n<td>Comandos do sistema<\/td>\n<\/tr>\n<tr>\n<td>Impacto<\/td>\n<td>Alto<\/td>\n<td>Alto<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Complexidade<\/td>\n<td>Moderado a alto<\/td>\n<td>Moderado<\/td>\n<td>Moderado<\/td>\n<\/tr>\n<tr>\n<td>Mitiga\u00e7\u00e3o T\u00edpica<\/td>\n<td>Valida\u00e7\u00e3o de entrada<\/td>\n<td>Declara\u00e7\u00f5es Preparadas<\/td>\n<td>Valida\u00e7\u00e3o de entrada, escape<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Perspectivas e tecnologias do futuro relacionadas \u00e0 inje\u00e7\u00e3o de OGNL<\/h2>\n<p>O desenvolvimento cont\u00ednuo de estruturas web e linguagens de programa\u00e7\u00e3o evolui continuamente o cen\u00e1rio de amea\u00e7as, incluindo a inje\u00e7\u00e3o de OGNL. As perspectivas futuras incluem:<\/p>\n<ul>\n<li><strong>T\u00e9cnicas Avan\u00e7adas de Detec\u00e7\u00e3o<\/strong>: Utilizando aprendizado de m\u00e1quina e IA para detectar e prevenir inje\u00e7\u00e3o de OGNL.<\/li>\n<li><strong>Melhorias na estrutura<\/strong>: Construindo estruturas mais seguras que minimizam inerentemente o risco de inje\u00e7\u00e3o de OGNL.<\/li>\n<li><strong>Conscientiza\u00e7\u00e3o sobre seguran\u00e7a<\/strong>: Aumentar a educa\u00e7\u00e3o e a conscientiza\u00e7\u00e3o entre os desenvolvedores sobre pr\u00e1ticas de codifica\u00e7\u00e3o seguras.<\/li>\n<\/ul>\n<h2>Como os servidores proxy podem ser usados ou associados \u00e0 inje\u00e7\u00e3o OGNL<\/h2>\n<p>Servidores proxy como os fornecidos pelo OneProxy podem desempenhar um papel tanto no ataque quanto na defesa em rela\u00e7\u00e3o \u00e0 inje\u00e7\u00e3o de OGNL:<\/p>\n<ul>\n<li><strong>Papel Defensivo<\/strong>: Ao implantar um servidor proxy configurado corretamente, as organiza\u00e7\u00f5es podem filtrar e monitorar o tr\u00e1fego, fornecendo assim uma camada adicional de prote\u00e7\u00e3o contra inje\u00e7\u00e3o de OGNL.<\/li>\n<li><strong>Papel Ofensivo<\/strong>: os invasores podem usar servidores proxy para ocultar sua identidade enquanto conduzem um ataque de inje\u00e7\u00e3o de OGNL, dificultando a detec\u00e7\u00e3o e a atribui\u00e7\u00e3o.<\/li>\n<\/ul>\n<h2>Links Relacionados<\/h2>\n<ol>\n<li><a href=\"https:\/\/struts.apache.org\/security\/\" target=\"_new\" rel=\"noopener nofollow\">Boletins de seguran\u00e7a do 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\">Guia OWASP sobre testes para inje\u00e7\u00e3o OGNL<\/a><\/li>\n<li><a href=\"https:\/\/cwe.mitre.org\/data\/definitions\/917.html\" target=\"_new\" rel=\"noopener nofollow\">Detalhes CWE sobre inje\u00e7\u00e3o OGNL<\/a><\/li>\n<\/ol>\n<p>Este extenso guia fornece uma compreens\u00e3o abrangente da inje\u00e7\u00e3o OGNL, destacando sua hist\u00f3ria, mecanismos, recursos, tipos e sua rela\u00e7\u00e3o com servidores proxy como o OneProxy. Salienta a necessidade de medidas de seguran\u00e7a robustas para a defesa contra ataques t\u00e3o sofisticados e altamente prejudiciais.<\/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\/pt\/wp-json\/wp\/v2\/wiki\/478257","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/wiki\/478257\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/media\/478258"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/media?parent=478257"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}