[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fvTSFm7t-nntuyt379VWgS1dYpCRYkQGmmsy7RsBcZLk":3},{"slug":4,"title":5,"summary":6,"category":7,"author":10,"image_url":16,"image_thumb_url":16,"published_at":17,"updated_at":18,"body_html":19,"keywords":20,"reading_time_minutes":21,"related_articles":22,"related_course":59,"related_specialty":79},"inyeccion-xpath-en-aplicaciones-web","Inyección XPath en Aplicaciones Web.","Las inyecciones son un tipo de ataque muy peligroso para aplicativos web, ya que permiten a un atacante extraer información relevante sobre la organización. Por eso es muy importante verificar que las aplicaciones que desarrollamos, utilicen un control de sanitización de caracteres, para mitigar vulnerabilidades de este tipo. Hoy veremos un tipo de inyección muy peligroso denominado Inyección XPath. La inyección XPath es similar a las Inyecciones SQL.",{"slug":8,"name":9},"auditoria-aplicaciones-web","Pentesting a Aplicaciones Web",{"username":11,"name":12,"avatar_url":13,"headline":14,"aboutme":15},"saamux","Samuel Esteban","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBbDRJIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--6e60a39152819c1c857e0a1e157e99a5fe76ddf9\u002Fperfil.png","Senior Pentester","Actualmente me desempeño como Pentester...","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaVlPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--0303154bc7d83010004597771a9680047ebcbc31\u002Fshutterstock_1100979299.jpg","2017-03-21T23:16:24-03:00","2026-10-26T11:43:31-03:00","\u003Ch3>¿Que son las inyecciones XPath?\u003C\u002Fh3>\r\n\u003Cp>\u003Cspan>Las \u003Cstrong>inyecciones\u003C\u002Fstrong> son un tipo de ataque muy peligroso para aplicativos web, ya que permiten a un atacante extraer información relevante sobre la organización. Por eso es muy importante verificar que las aplicaciones que desarrollamos, utilicen un control de sanitización de caracteres, para mitigar vulnerabilidades de este tipo. Hoy veremos un tipo de inyección muy peligroso denominado \u003Cstrong>inyección XPath\u003C\u002Fstrong>. La inyección XPath es similar a las Inyecciones SQL, Los ataques de Inyección XPath se producen cuando un sitio web usa datos suministrada por un usuario para construir una consulta XPath para datos XML.Mediante el envío de información intencionalmente mal formada al sitio web, un atacante puede averiguar cómo se estructuran los datos XML, o acceder a datos a los que no se suelen tener acceso. El atacante puede incluso ser capaz de elevar sus privilegios en el sitio web si los datos XML se utilizan para la autenticación (por ejemplo, un archivo de usuario basado en XML).\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Las consultas XML se realizan con XPath, un tipo de declaración descriptiva simple que permite la consulta XML para localizar una información. Como SQL, puedes especificar ciertos atributos a encontrar, y los patrones a seguir. Cuando se usa XML en un sitio web es común aceptar algún formulario de entrada de cadena de texto para identificar el contenido de localizar y mostrar en la página. Esta entrada 'debe' ser supervisada para comprobar que no provoca errores en la consulta XPath ni devuelve datos incorrectos.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>XPath es un lenguaje estándar; su notación \u002F sintaxis es siempre independiente de la implementación, lo que significa que el ataque puede ser automatizado. No hay comunicaciones diferentes, como ocurre en las solicitudes a las bases de datos SQL.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Debido a que no existe un control de acceso por niveles, es posible obtener el documento completo. No vamos a encontrar ningún tipo de limitación como podía ocurrir en los ataques de inyección SQL.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>A continuación tenemos el siguiente escenario.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002FYz6ISl2g_VSvqT_8Bp54gFknr3GexEH71qmi7fwwzyDelgwhmv2XeE1nege9oqRuBUcoiUBeMraoOxnGqzcWijFquODma2Ig_BpEQ4giHKSF7bdSR-IcPl7-prE3TymbYx0Acx6sVOthnZgThQ\" width=\"589\" height=\"281\">\u003C\u002Fp>\r\n\u003Cp>\u003Cem>Inyección XPath – Escenario de Pruebas\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Posteriormente intentamos iniciar una sesión (obviamente desconociendo las credenciales del sistema), usaremos las credenciales admin\u002Fadmin para ver si logramos tener acceso.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh6.googleusercontent.com\u002FShEVUIo332q9eKhiGG9c8FAOR4u0U7Sj_TydGzjPuOblu55dT47pemkhAN16cUi-DL2t965CTFmgrW6kbDHbaBbqh269-EPZe_uStteM5NYgdCngS5B665RurzyfEdb8a1eznm7axxb_Ca3z-Q\" width=\"589\" height=\"265\">\u003C\u002Fp>\r\n\u003Cp>\u003Cem>Inyección XPath – Inicio de Sesión\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>Aquí nos damos cuentas de dos cosas, la primera y la más obvia, es que las credenciales de acceso no son válidas, la segunda es que los datos están siendo enviados por \u003Cstrong>GET\u003C\u002Fstrong>, cosa que no se debe hacer, ya que siempre en una sesión los datos deben ser enviados por \u003Cstrong>POST\u003C\u002Fstrong> para que no sean visualizados a través de la URL.\u003C\u002Fp>\r\n\u003Cp>Posteriormente haremos lo que siempre se realiza para testear algún tipo de inyección, agregar una comilla simple en los campos.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FHo4QwKMgy5fm0pEM-8QSolDSUzxmxlQ5-_C5VzXb7-Abl2_dy6A3IkQCC3H5Hsko67RzJtO8P2Mkq02aMO9055jF2eyWY16UDiPwEIo7q3fT2szIWZUCHEROKO18Hf8-nu3jmMFY5KjgcCWp3Q\" width=\"589\" height=\"313\">\u003C\u002Fp>\r\n\u003Cp>\u003Cem>Inyección XPath – Mensaje de Error Inyección XPath\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>Como es posible visualizar, al ingresar una \u003Cstrong>\u003Cem>comilla simple\u003C\u002Fem>\u003C\u002Fstrong> en ambos cambios (user y password) nos devuelve un mensaje de error aludiendo al ingreso de un carácter invalido para la estructura \u003Cstrong>XPath\u003C\u002Fstrong>, en otras palabras esto nos retornan un error XPath el cual podemos explotar para extraer información. Pero \u003Cstrong>¿Por qué se produce esta vulnerabilidad?\u003C\u002Fstrong>.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Si observamos el código del \u003C\u002Fspan>archivo\u003Cspan> \u003C\u002Fspan>\u003Cstrong>xmli_1.php\u003C\u002Fstrong>\u003Cspan>.\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh4.googleusercontent.com\u002FC3Kqvod0kPIjQCt3Q8JnsgUHI2eCzLLai_50vwpShc6sRQ6LMCJpr_ropalVndi46iYmaxhaQNEap43t1Cr25BkIFVyn-IVszuaFF4i3pM5E2zECnKSuEBEDu1M39qmNfZJOqnb56D84QuP8NA\" width=\"589\" height=\"269\">\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cdiv>\u003Cspan>\u003Cem>Inyección XPath – Código PHP recurso xmli_1.php\u003C\u002Fem>\u003C\u002Fspan>\u003C\u002Fdiv>\r\n\u003Cdiv>\u003Cspan>\u003Cem> \u003C\u002Fem>\u003C\u002Fspan>\u003C\u002Fdiv>\r\n\u003Cp>\u003Cspan>En el código php del archivo vulnerable es posible visualizar que se está utilizando una función \u003C\u002Fspan>\u003Cstrong>XML\u003C\u002Fstrong>\u003Cspan> para la llamada  y validación de datos, el problema de de esto, es que no se sanitizan lo datos, y por ende un atacante podría ingresar cualquier tipo de datos, como caracteres especiales, tags html, etc. Siempre que se desarrolle una aplicación web, es necesario escapar todos estos tipos de caracteres, de esta manera se mitigaran posibles intentos de ataques hacia dichos campos.\u003Cbr>\u003C\u002Fspan>\u003Cspan>Al igual que en una inyección SQL, podemos realizar una petición malfomada con una expresión boleana que siempre verdadera. Por lo tanto como la petición va por GET podemos hacer lo siguiente:\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>http:\u002F\u002F172.16.45.167\u002FbWAPP\u002Fxmli_1.php?login=' or '1'='1&amp;password=' or '1'='1&amp;form=submit\u003C\u002Fpre>\r\n\u003Cp>\u003Cbr>PD: En caso de que la aplicación utilice el método \u003Cstrong>POST\u003C\u002Fstrong> para la inserción de datos, se deberá agregar la expresión boleana en los campos y luego darle al botón submit. Como esta aplicación esta desarrolla de forma erronea, aprovechamos este error para poder introducir datos de inicio de sesión a través del método GET.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cimg src=\"https:\u002F\u002Flh5.googleusercontent.com\u002F6tGD2NyqANh3S9B9mt63x5HfvY6KrbsveQuaKSBg7aYIiVm1_t-TFlCmumqcpgaGTVF6TvahfcTSqp9kUB_bQanUKSguEkZrKIU1uLIZhzUA6G5b8__01TAfohP1t8V1XI8QPdfV9t0HlY6Ccw\" width=\"589\" height=\"322\">\u003C\u002Fp>\r\n\u003Cp>\u003Cem>Inyección XPath – Ataque exitoso\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp>Se pudo realizar un ataque exitoso, ya que aparentemente logramos iniciar una sesión ¿con cual usuario?, con el primero de base de datos.\u003Cbr>Algunos Dorks para la búsqueda de sitios vulnerables a XPath\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\"Warning: SimpleXMLElement::xpath()\" site:com\u003Cbr>\u003Cbr>\"XPath syntax error\" site:com inurl:php?id=\u003C\u002Fpre>","XPath, sql inection, hacking",4,[23,35,47],{"slug":24,"title":25,"summary":26,"category":27,"author":28,"image_url":32,"image_thumb_url":32,"published_at":33,"updated_at":34},"sqlmap-ejemplo-con-metasploitable2","Sqlmap - ejemplo con metasploitable2","Hola, soy Martin Frias y en esta vez hablaré un poco sobre Sqlmap, Sqlmap es una herramienta que permite automatizar las inyecciones sql. La inyección sql es una vulnerabilidad que nos permite la inyección de código sql para que pueda ser ejecutado e interpretado y así obtener información de la base de datos, información a la que normalmente no deberíamos tener acceso, yo recomiendo fuertemente aprender lenguaje sql, para poder saber hacer inyecciones slq de forma manual, de manera que  si vas a usar herramientas automatizadas como sqlmap, por ejemplo, que sea por ahorrar algo de tiempo, porque siempre es mejor saber qué está haciendo un herramienta por detrás, no solo escribir un comando y no saber exactamente qué acabamos de hacer.",{"slug":8,"name":9},{"username":29,"name":30,"avatar_url":31},"coldd","Martin Frias",null,"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdjRPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--514529c30f11596b49003fc5bd68b363e922629b\u002Fshutterstock_1085444453.jpg","2020-09-23T14:04:11-03:00","2026-10-26T11:01:19-03:00",{"slug":36,"title":37,"summary":38,"category":39,"author":40,"image_url":44,"image_thumb_url":44,"published_at":45,"updated_at":46},"portainer-gestor-web-para-docker","Portainer es una herramienta web open-source: Gestor Web para Docker","En los últimos años, las tecnologias de irutalizacioon de servicios y plataformas ha tomado poder en el mundo de las implementaciones. Uno de ellos es Docker, el cuál nos permite automatizar el despliegue de aplicaciones dentro de contenedores de software. A grandes ragos, Docker permite meter en un contenedor (un entorno cerrado) aquellas cosas que mi aplicación necesita para ser ejecutada (java, Maven, tomcat…) y la propia aplicación. Ese contenedor puede llevarse a cualquier máquina que tenga instalado Docker y ejecutar la aplicación independientemente de qué sistema operativo es, de si son compatibles o no.",{"slug":8,"name":9},{"username":41,"name":42,"avatar_url":43},"damch","Javier Candia","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBam9KIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--036416498d87c59fa3f0ac1f5e0a08336b65faf5\u002Fdescarga.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdnNPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--f33dca4def55d322137830da440c14fbc9abbd47\u002Fshutterstock_721673605.jpg","2020-08-31T12:17:41-04:00","2026-10-26T12:22:47-03:00",{"slug":48,"title":49,"summary":50,"category":51,"author":52,"image_url":56,"image_thumb_url":56,"published_at":57,"updated_at":58},"evillimiter","Evil Limiter","Si se encuentra con un compañero de cuarto que acapara el ancho de banda de datos limitado con videojuegos o descubre que un vecino se ha invitado a su red Wi-Fi, puede recuperar fácilmente el control de su acceso a Internet. Evil Limiter hace esto al permitirle controlar la velocidad de bits de cualquier dispositivo en la misma red que usted, lo que le permite reducir o incluso detener la velocidad de transferencia de datos por completo.",{"slug":8,"name":9},{"username":53,"name":54,"avatar_url":55},"Erik172","Erik Garcia","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBc1lSIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e703ff6245d2a783835ef18906375a5246ad1b84\u002Fgorickyourself.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBdXdPIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--79934810f6a5f794a404634540a7b200a27853e6\u002Fshutterstock_179770802.jpg","2020-05-12T14:50:51-04:00","2026-10-26T14:37:08-03:00",{"slug":60,"title":61,"summary":62,"level":63,"specialty":64,"category":67,"instructor":68,"image_url":72,"image_thumb_url":72,"duration_seconds":73,"lessons_count":74,"students_count":75,"is_free":76,"coming_soon":77,"updated_at":78},"retos-hacking-web","Retos Hacking Web","Aprende técnicas de Web Hacking con laboratorios reales las 24 horas.","Basicos",{"slug":65,"name":66},"web-application-testing-wat","Web Application Testing",{"slug":8,"name":9},{"username":69,"name":70,"avatar_url":71},"Rodolfo","Rodolfo Cecena","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBanNGIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2097f10306a2b3955ed91f935c2c204cee999900\u002Frodolfo.jpg","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZzhOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2cf209dab21946647599db6af552f4c7be69a077\u002FRETOS-HACKING-01.png",9027,20,38321,true,false,"2025-02-15T00:31:58-03:00",{"slug":65,"name":66,"summary":80,"level":81,"courses_count":82,"total_duration_seconds":83,"is_free":77,"image_url":84,"icon_url":85,"wallpaper_url":86,"updated_at":87},"Las aplicaciones web son las solicitadas por el mercado, una mala configuración o práctica puede comprometer una página web y dejarla expuesta a ataques como una inyección sql, la mayoría de páginas web están creadas…","Avanzado",12,148188,"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaVVQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--3da0fc1100f4cbea608297447bf7820177f5603b\u002FWeb-Aplication-Testing-02.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaXNQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--72bafcc13a30961fa0d390b3685b3450726cdf5a\u002FWeb-Aplication-Testing.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBakVQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--e43f452a65e4221aa712798b9da4c14461c4bf8d\u002FWeb-Aplication-Testing-02.png","2021-05-17T15:38:02-04:00"]