{"id":31592,"date":"2024-10-30T11:40:03","date_gmt":"2024-10-30T10:40:03","guid":{"rendered":"https:\/\/inlab.fib.upc.edu\/noticias\/inyecciones-la-tercera-vulnerabilidad-con-mas-presencia-en-las-aplicaciones-web\/2024\/"},"modified":"2024-10-30T12:56:49","modified_gmt":"2024-10-30T11:56:49","slug":"inyecciones-la-tercera-vulnerabilidad-con-mas-presencia-en-las-aplicaciones-web","status":"publish","type":"post","link":"https:\/\/inlab.fib.upc.edu\/es\/articulos\/inyecciones-la-tercera-vulnerabilidad-con-mas-presencia-en-las-aplicaciones-web","title":{"rendered":"INYECCIONES: La tercera vulnerabilidad con m\u00e1s presencia en las aplicaciones web"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Las inyecciones ocupan la tercera plaza en el podio de las vulnerabilidades web m\u00e1s relevantes, seg\u00fan la clasificaci\u00f3n de OWASP (Open Web Application Security Project), en su<a href=\"https:\/\/owasp.org\/www-project-top-ten\/\"> \u00faltimo ranking publicado en 2021<\/a>.<\/p>\n\n<p class=\"wp-block-paragraph\">Una inyecci\u00f3n es un ataque que se produce cuando un agente malicioso consigue pasar informaci\u00f3n no validada a un int\u00e9rprete, como parte de una petici\u00f3n. El receptor, pensando que los datos son leg\u00edtimos, las ejecuta, o permite el acceso a elementos privilegiados. Los ataques m\u00e1s comunes de inyecci\u00f3n son en SQL, NoSQL, comandos del sistema operativo y LDAP.   <\/p>\n\n<p class=\"wp-block-paragraph\">En este art\u00edculo encontrar\u00e9is herramientas para poder detectar la existencia de inyecciones en nuestro c\u00f3digo, y recomendaciones para poder prevenirlas, mitigando as\u00ed las posibles consecuencias. <\/p>\n\n<p class=\"wp-block-paragraph\">Se puede considerar que una aplicaci\u00f3n es vulnerable a un ataque de este tipo en las siguientes situaciones:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Los datos proporcionados por el usuario no son validados, filtrados, ni saneados por el sistema.<\/li>\n\n\n\n<li>Se invocan consultas din\u00e1micas o no parametrizadas, sin codificar los par\u00e1metros de forma adecuada seg\u00fan el contexto.<\/li>\n\n\n\n<li> Se utilizan datos maliciosos dentro de los par\u00e1metros de b\u00fasqueda en consultas Object-Relational Mapping (ORM), para extraer registros adicionales sensibles.<\/li>\n\n\n\n<li> Se usan datos maliciosos directamente, o se concatenan. De forma que la sentencia SQL o comando resultante contiene informaci\u00f3n, y estructuras con consultas din\u00e1micas o procedimientos alterados. <br\/><span id=\"docs-internal-guid-09fa268a-7fff-a116-ff79-7c57437a76d8\"><span style=\"font-size: 12pt; font-family: \" pt=\"\" serif=\"\" background-color:=\"\" transparent=\"\" font-variant-numeric:=\"\" normal=\"\" font-variant-east-asian:=\"\" font-variant-alternates:=\"\" font-variant-position:=\"\" vertical-align:=\"\" baseline=\"\"><\/span><span style=\"font-size: 12pt; font-family: \" pt=\"\" serif=\"\" background-color:=\"\" transparent=\"\" font-variant-numeric:=\"\" normal=\"\" font-variant-east-asian:=\"\" font-variant-alternates:=\"\" font-variant-position:=\"\" vertical-align:=\"\" baseline=\"\"><\/span><\/span><\/li>\n<\/ul>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">Las acciones recomendadas para prevenir este problema son las siguientes:<\/p>\n\n<ul class=\"wp-block-list\">\n<li>Emplear una API segura, que evite totalmente el uso de un int\u00e9rprete o proporcione una interfaz parametrizada.<\/li>\n\n\n\n<li>Implementar validaciones de entradas de datos en el servidor, utilizando entrada positiva o \u00abwhitelist\u00bb.<\/li>\n\n\n\n<li>Hacer uso de LIMIT y otros controles SQL sobre el n\u00famero y el tipo de consultas, para evitar la divulgaci\u00f3n masiva de registros en caso de inyecci\u00f3n SQL.<\/li>\n\n\n\n<li><span style=\"font-size: 12pt; font-family: \" pt=\"\" serif=\"\" background-color:=\"\" transparent=\"\" font-variant-numeric:=\"\" normal=\"\" font-variant-east-asian:=\"\" font-variant-alternates:=\"\" font-variant-position:=\"\" vertical-align:=\"\" baseline=\"\"><\/span>Usar la sintaxis de escape espec\u00edfica, para evitar el uso de caracteres especiales que validan una consulta.<\/li>\n\n\n\n<li>Filtrar seg\u00fan la sem\u00e1ntica de la aplicaci\u00f3n, por ejemplo:\n<ul class=\"wp-block-list\">\n<li>Barcelona como nombre v\u00e1lido de ciudad.<\/li>\n\n\n\n<li><em>&lt;b&gt;destacado&lt;\/b&gt;<\/em> puede resultar un comentario v\u00e1lido si la aplicaci\u00f3n permite un campo con texto enriquecido, pero no si no es as\u00ed.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n, se muestra un ejemplo de escenario donde ser\u00eda posible realizar un ataque por inyecci\u00f3n.<\/p>\n\n<p class=\"wp-block-paragraph\">Un caso de inyecci\u00f3n se podr\u00eda producir al recibir datos del usuario y utilizarlos para hacer sentencias sobre una base de datos, sin que estos pasen por ning\u00fan tipo de proceso de validaci\u00f3n.<\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img fetchpriority=\"high\" decoding=\"async\" width=\"917\" height=\"219\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in2.png\" alt=\"\" class=\"wp-image-31576\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in2.png 917w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in2-300x72.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in2-768x183.png 768w\" sizes=\"(max-width: 917px) 100vw, 917px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">El c\u00f3digo de la imagen corresponde a un fragmento de una funci\u00f3n Java vulnerable. En ella se utilizan par\u00e1metros extra\u00eddos directamente de la consulta, sin ning\u00fan procedimiento de saneamiento, para realizar una query SQL donde se obtiene el usuario con nombre y contrase\u00f1a iguales a los recibos. Esto permitir\u00eda a un atacante enviar sentencias SQL maliciosas, como por ejemplo &#8216;<em>username=admin;\u2013 &#8211;<\/em>&#8216;. El programa, al recibir este valor para el nombre de usuario, obtiene la entrada vinculada de la base de datos sin importar las credenciales v\u00e1lidas, y devuelve<em> true<\/em> como resultado. Esto sucede porque como no se escapa el elemento, este puede pasar a formar parte de la sentencia, en vez de \u00fanicamente ser el atributo de un campo. Entonces lo que se ejecuta finalmente es <em>\u00abSELECT * FROM usuarios WHERE id_usuario=&#8217;admin&#8217;;&#8211; -\u00bb <\/em>de forma que la parte <em>\u00abAND password='\u00bb + password &#8216;+ \u00ab&#8216;\u00bb;<\/em> se ignora por encontrarse ahora comentada. El atacante, conociendo el nombre de usuario del administrador, y suponiendo que esta funci\u00f3n es la que se utiliza para gestionar el inicio de sesi\u00f3n, conseguir\u00eda acceso privilegiado al sistema.      <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"717\" height=\"378\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in3.png\" alt=\"\" class=\"wp-image-31573\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in3.png 717w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in3-300x158.png 300w\" sizes=\"(max-width: 717px) 100vw, 717px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">Para solucionar el problema en esta situaci\u00f3n concreta, podemos usar <em>prepared statement<\/em> para hacer la petici\u00f3n, puesto que esta funci\u00f3n separa lo que ha enviado el usuario de la query, proporcionando as\u00ed una validaci\u00f3n de los datos. Al recibir el mismo valor que en el caso anterior, <em>\u201cuserrname=admin;\u2013 -\u201d<\/em>, esta nueva implementaci\u00f3n no sufrir\u00eda el mismo problema. El c\u00f3digo en este caso escapar\u00eda el par\u00e1metro, de forma que <em>\u201cadmin;&#8211; -\u201d<\/em> no se entender\u00eda como una parte de la sentencia, sino que \u00fanicamente ser\u00eda el valor del campo<em> id_usuario<\/em>.  <\/p>\n\n<p class=\"wp-block-paragraph\">En cualquier otro caso, el procedimiento ser\u00eda el mismo, se tendr\u00eda que buscar la forma de conseguir aislar aquello que recibimos del front-end de las conexiones con la base de datos. Para hacerlo podemos utilizar un procedimiento ya existente, como el ejemplo, o bien realizar las comprobaciones necesarias por nuestra cuenta, de manera cuidadosa, para no dejarse ning\u00fan caso que pueda comprometer el sistema. <\/p>\n\n<p class=\"wp-block-paragraph\">Seguidamente, se adjunta un ejemplo m\u00e1s visual de las consecuencias que tendr\u00eda hacer uso de un c\u00f3digo inseguro como el anterior en una aplicaci\u00f3n. Para esta demostraci\u00f3n se ha utilizado la <a href=\"https:\/\/owasp.org\/www-project-juice-shop\/\">OWASP Juice Shop<\/a>, una aplicaci\u00f3n insegura creada para poder practicar la explotabilidad de las vulnerabilidades en un entorno seguro.  <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img decoding=\"async\" width=\"1852\" height=\"968\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4.png\" alt=\"\" class=\"wp-image-31570\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4.png 1852w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4-300x157.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4-1024x535.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4-768x401.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in4-1536x803.png 1536w\" sizes=\"(max-width: 1852px) 100vw, 1852px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">Aunque se pueden encontrar agujeros de todo tipo, el ejemplo se centrar\u00e1 en un panel de inicio de sesi\u00f3n vulnerable a inyecciones. El objetivo es hacer <em>login <\/em>como un usuario administrador sin conocer sus credenciales.  <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1850\" height=\"969\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5.png\" alt=\"\" class=\"wp-image-31567\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5.png 1850w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5-300x157.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5-1024x536.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5-768x402.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in5-1536x805.png 1536w\" sizes=\"(max-width: 1850px) 100vw, 1850px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">La primera tarea a realizar es descubrir una direcci\u00f3n electr\u00f3nica privilegiada. Inspeccionando los productos en la p\u00e1gina principal se pueden ver rese\u00f1as de los usuarios, donde se expone su correo como se puede apreciar en la imagen anterior. Como <a href=\"mailto:admin@juice-sh.op\"><em>admin@juice-sh.op<\/em><\/a>  <em> <\/em>es casi con total seguridad la direcci\u00f3n del usuario <em>admin<\/em>, intentaremos iniciar sesi\u00f3n en el panel utilizando esta nueva informaci\u00f3n, pero todav\u00eda sin saber su contrase\u00f1a.<\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1850\" height=\"967\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6.png\" alt=\"\" class=\"wp-image-31564\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6.png 1850w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6-300x157.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6-1024x535.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6-768x401.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in6-1536x803.png 1536w\" sizes=\"(max-width: 1850px) 100vw, 1850px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">Se ha utilizado la t\u00e9cnica descrita en el anterior ejemplo: en el campo email se coloca el correo al cual se quiere acceder <em>admin@juice-sh.op<\/em>, en este caso, seguido de la condici\u00f3n SQL <em>OR 1=1\u2013 &#8211;<\/em>. El servidor, al recibir estos valores por parte del cliente y no realizar ninguna validaci\u00f3n, entender\u00e1 los campos como parte de la sentencia SQL que se realiza sobre la base a datos. De esta forma se busca el usuario que tiene esta direcci\u00f3n (finalizando el contenido del campo con la  <em> <\/em>&#8216; ) y se ejecuta la cl\u00e1usula <em>OR 1=1<\/em>, que al evaluarse es <em>true<\/em>. Finalmente, se incluye <em>\u00ab&#8211; -\u00ab<\/em> para comentar el resto de la query, porque si se ejecutara, se har\u00eda igualmente la comprobaci\u00f3n de la contrase\u00f1a devolviendo<em> false<\/em>. En conclusi\u00f3n, aquello que se ejecutar\u00eda en el servidor ser\u00eda muy parecido a:<em> SELECT * FROM Usuarios WHERE email = &#8216;mail enviado&#8217; OR 1=1 \u2013 &#8211; (AND contrase\u00f1a = &#8216;contrase\u00f1a enviada&#8217;; comentado, no se ejecuta)<\/em>. Siempre devolver\u00e1 <em>true <\/em>si existe alg\u00fan usuario con la direcci\u00f3n enviada, sin importar la contrase\u00f1a que se adjunte en el formulario, consiguiendo acceder a su cuenta sin conocer las credenciales.  <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1851\" height=\"970\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7.png\" alt=\"\" class=\"wp-image-31561\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7.png 1851w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7-300x157.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7-1024x537.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7-768x402.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in7-1536x805.png 1536w\" sizes=\"(max-width: 1851px) 100vw, 1851px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">C\u00f3mo se ve en la imagen, los valores anteriores nos han permitido obtener acceso a la cuenta del administrador, ahora nos encontramos <em>logueados <\/em>como el usuario <em>admin<\/em>.<\/p>\n\n<p class=\"wp-block-paragraph\">Se podr\u00eda pensar que protegiendo el cliente con alg\u00fan tipo de <em>script <\/em>que denegara insertar sentencias maliciosas ser\u00eda suficiente para garantizar la seguridad del sistema. La realidad es que las comprobaciones en el \u00e1mbito del navegador son f\u00e1cilmente evitables, y resultan totalmente in\u00fatiles si no se toman las medidas adecuadas junto al servidor, como las descritas en el primer ejemplo donde se muestra el c\u00f3digo. <\/p>\n\n<p class=\"wp-block-paragraph\">Un atacante podr\u00eda evadir el control en el <em>client side<\/em> interceptando las peticiones con un <em>proxy<\/em>, y modificando los campos con los valores deseados fuera del buscador.<\/p>\n\n<p class=\"wp-block-paragraph\">Como ejemplo, se supone que el panel bloquea los valores, y estos se modifican por los anteriores interceptando los datos con<a href=\"https:\/\/portswigger.net\/burp\"> <em>BURPSUITE<\/em><\/a><em>.<\/em> <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-gallery aligncenter has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex\">\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1850\" height=\"966\" data-id=\"31558\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8.png\" alt=\"\" class=\"wp-image-31558\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8.png 1850w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8-300x157.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8-1024x535.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8-768x401.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in8-1536x802.png 1536w\" sizes=\"(max-width: 1850px) 100vw, 1850px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1576\" height=\"586\" data-id=\"31555\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9.png\" alt=\"\" class=\"wp-image-31555\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9.png 1576w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9-300x112.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9-1024x381.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9-768x286.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in9-1536x571.png 1536w\" sizes=\"(max-width: 1576px) 100vw, 1576px\" \/><\/figure>\n<\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">Ahora se ha introducido en el login los valores \u00abSANTI\u00bb, \u00abSANTI\u00bb como se puede ver en la primera imagen. Al enviar los datos se ha interceptado la petici\u00f3n con el <em>proxy <\/em>y, como se puede apreciar en la segunda imagen, los campos <em>email <\/em>y <em>password <\/em>son equivalentes a los del formulario. El siguiente paso ser\u00e1 cambiar los valores para realizar la misma sentencia maliciosa que en un panel sin protecci\u00f3n.  <\/p>\n\n<div style=\"height:1rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"1573\" height=\"566\" src=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10.png\" alt=\"\" class=\"wp-image-31552\" style=\"object-fit:cover\" srcset=\"https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10.png 1573w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10-300x108.png 300w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10-1024x368.png 1024w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10-768x276.png 768w, https:\/\/inlab.fib.upc.edu\/wp-content\/uploads\/2024\/10\/in10-1536x553.png 1536w\" sizes=\"(max-width: 1573px) 100vw, 1573px\" \/><\/figure>\n\n<div style=\"height:1.5rem\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n<p class=\"wp-block-paragraph\">En esta imagen se muestra el valor malicioso para el campo email. Como el servidor no hace ninguna comprobaci\u00f3n, el resultado ser\u00e1 el mismo: conseguir acceso a la cuenta administradora, sin importar las nuevas medidas al navegador. <\/p>\n\n<p class=\"wp-block-paragraph\">En conclusi\u00f3n, los ataques por inyecci\u00f3n suceden al confiar en los datos enviados por cualquier usuario con acceso a la aplicaci\u00f3n. Por lo tanto, es importante protegerse haciendo comprobaciones sobre todo aquello que se recibe. Teniendo en cuenta siempre que, aunque las protecciones en el lado del cliente pueden resultar \u00fatiles para la experiencia del usuario leg\u00edtimo, las medidas de seguridad siempre se tienen que tomar en el lado del servidor, donde la informaci\u00f3n es realmente procesada. <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Las inyecciones ocupan la tercera plaza en el podio de las vulnerabilidades web m\u00e1s relevantes, seg\u00fan la clasificaci\u00f3n de OWASP (Open Web Application Security Project), en su \u00faltimo ranking publicado en 2021. Una inyecci\u00f3n es un ataque que se produce cuando un agente malicioso consigue pasar informaci\u00f3n no validada a un int\u00e9rprete, como parte de [&hellip;]<\/p>\n","protected":false},"author":1242,"featured_media":31581,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[496],"tags":[],"experteses":[],"class_list":["post-31592","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-articulos"],"acf":[],"_links":{"self":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/31592","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/users\/1242"}],"replies":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/comments?post=31592"}],"version-history":[{"count":1,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/31592\/revisions"}],"predecessor-version":[{"id":31593,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/posts\/31592\/revisions\/31593"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media\/31581"}],"wp:attachment":[{"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/media?parent=31592"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/categories?post=31592"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/tags?post=31592"},{"taxonomy":"experteses","embeddable":true,"href":"https:\/\/inlab.fib.upc.edu\/es\/wp-json\/wp\/v2\/experteses?post=31592"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}