[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fXf1BKMFyjrvAfMYOfOhNGvs8vxeYFlT3SZ5WfLvEHTo":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":54,"related_specialty":74},"inyeccion-sql-definicion-y-ejemplos","Inyección SQL: Definición y ejemplos reales.","En esta oportunidad hablaremos en detalle sobre las inyecciones SQL. Una inyección SQL es una vulnerabilidad categorizada como crítica, la cual permite a un atacante inyectar sentencias SQL a través del(los) input(s) de un aplicativo web.",{"slug":8,"name":9},"pentesting","Pentesting ",{"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\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ01PIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--776afb5555f1397fda08ad4455b72688703e7d77\u002Fshutterstock_1043394892.png","2016-06-30T23:06:49-04:00","2026-10-26T15:49:44-03:00","\u003Cp>En esta oportunidad hablaremos en detalle sobre las inyecciones SQL. Una inyección SQL es una vulnerabilidad categorizada como crítica, la cual permite a un atacante inyectar sentencias SQL a través del(los) input(s) de un aplicativo web. Esta vulnerabilidad se puede producir automáticamente cuando un programa \"arma descuidadamente\" una sentencia SQL en tiempo de ejecución, o bien durante la fase de desarrollo, cuando el programador explicita la sentencia SQL a ejecutar en forma desprotegida. En cualquier caso, siempre que el programador necesite y haga uso de parámetros a ingresar por parte del usuario, a efectos de consultar una base de datos; ya que, justamente, dentro de los parámetros es donde se puede incorporar el código SQL intruso. Para entrar en detalle de cómo funciona esta vulnerabilidad pondremos el siguiente ejemplo:\u003C\u002Fp>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cimg class=\"img-responsive\" src=\"https:\u002F\u002Flh3.googleusercontent.com\u002FJX70pgp1S5HmZ17FGLSshAr69qk6xnte8F94RHtnV7lpS48dauWA9VRAZo9Mqxu18S9HnChKH9SaI3_uHGmg2zI-ylq6t_NoFj6aeRZJB4cwJLs2xaBsw81c4PCughF_5h7D-Gxvr35VEkEOLA\">\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cem>Ejemplo 1 – Inyección SQL\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>En la imagen anterior es posible observar un claro ejemplo de una inyección SQL, aquel input genera consulta a la base de datos del sistema, sin embargo si se agrega una comilla simple nos podemos percatar que se genera un error SQL, el cual hace referencia al motor de base de datos Mysql. Este error se produce porque la aplicación no sanitiza caracteres especiales, y en base a los errores que devuelve la aplicación es posible inyectar sentencias SQL. También existen las inyecciones SQL ciegas, estas inyecciones se caracterizan por no mostrar un error directamente en el aplicativo web, si no que producen cambios (alteraciones) distintos, como por ejemplo hacer que un botón o un checkbox aparezca en otro lado del sitio web, etc,  también es posible que respondan a una inyección basada en tiempo, el cual hace que el sitio web sea pausado por una cierta cantidad de tiempo,  veamos un ejemplo de este tipo de inyección:\u003C\u002Fp>\r\n\u003Cp>Tenemos la siguiente URL:\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cimg class=\"img-responsive\" src=\"https:\u002F\u002Flh5.googleusercontent.com\u002FdQZ9NhrcNE1HMVYM9gZWUQ62xgF0kGWh5QOk35CnwjBeJWSQPHGseTO5Gpv307LvJVRb3pp2HvX5vs0ML7v4KKngufOmyph-xsqLNumP9zaK5H744cI94p8KgsVYkK51aa9ZQTFq1tuoyrWo7Q\">\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cem> Ejemplo 2 – Inyección SQL ciega basada en Tiempo\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Cabe mencionar que las inyecciones SQL no son solo son inyectables a través de los recursos o campos visibles del aplicativo web (ejemplo: php?id=), sino que también es posible realizar inyecciones SQL en parámetros de la aplicación tales como el Host, User-Agent, Referer, Headers. Como es posible observar en las imagen anterior, se inyectaron los Headers de la aplicación (obviamente esta vulnerabilidad fue detectada con anterioridad a través de  una herramienta automatizada). La inyección SQL ciega basada en tiempo hace que la base de datos se pause por un tiempo especificado, para que posteriormente devuelva los resultados, a través de esta inyección, un atacante enumera cada letra de la porción de datos que desea leer usando la siguiente lógica:\u003C\u002Fp>\r\n\u003Cp>Si la primera letra del nombre de la Base de Datos es una “A”, esperar 10 segundos.\u003C\u002Fp>\r\n\u003Cp>Si la primera letra del nombre de la Base de Datos es una “B”, esperar 10 segundos, etc…\u003C\u002Fp>\r\n\u003Cp>Así con cada letra, si la respuesta tarda diez segundos es que es la letra por la que preguntamos si no es así continuamos con la siguiente. Por esta razón para este tipo de inyecciones siempre es recomendable utilizar una herramienta automatizada como Sqlmap, ya que facilita el trabajo y nos permite ahorrar una gran cantidad de tiempo.\u003C\u002Fp>\r\n\u003Cp>\u003Cspan> \u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>\u003Cimg class=\"img-responsive\" src=\"https:\u002F\u002Flh6.googleusercontent.com\u002F9C1geIT0c0Fkg5fk9qXO4gal3-bU2qrP0vNMRtLx4b-yJLISE2rZ5hR7PTfsGBITQ-i4miXVE2Jd4ELWe57fF2_gAaLh18jFet1VsM7evduSBBNuOuMq754geTLBT3JTkt9wiDabt5L3iQ3xCw\">\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cem>Ejemplo 3 – Inyección SQL basada en tiempo\u003C\u002Fem>\u003C\u002Fp>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>La aplicación es vulnerable ya que el vector de ataque que fue utilizado, indica que la aplicación debe esperar por 30 segundos, y efectivamente esto sucedió, por lo tanto se demostró que es vulnerable a una inyección SQL ciega basada en tiempo, en otro documento veremos cómo explotar esta vulnerabilidad con SQLMAP. Si deseas estudiar en detalle las formas de lograr realizar una inyección SQL en distintos motores de base de datos te recomendamos el siguiente link:\u003C\u002Fp>\r\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fpentestmonkey.net\u002Fcategory\u002Fcheat-sheet\">http:\u002F\u002Fpentestmonkey.net\u002Fcategory\u002Fcheat-sheet\u003C\u002Fa>\u003C\u002Fp>\r\n\u003Ch3>Inyecciones SQL Basadas en:\u003C\u002Fh3>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>Boolean-Based Blind: la inyección SQL ciega basada en expresiones Boleanas (verdadero o falso), nos indica que la URL responde a estas inyecciones y a su vez produce cambiar en el aplicativo web como tal. Por ejemplo:\u003Cbr>\u003Cbr>\u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> AND 1=1 \u002F\u002F verdadero\u003C\u002Fpre>\r\n\u003Cp>Esta condición es verdadera, y en el sitio web no se ve reflejado ningún tipo de cambio\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> AND 1=0 \u002F\u002F falso\u003C\u002Fpre>\r\n\u003Cp>Esta condición es falsa y en el sitio web se ven cambios por ejemplo, desaparece un botón o se cambiar de posición, etc.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>\u003Cspan>Time-Based Blind:\u003C\u002Fspan>\u003C\u002Fstrong> como ya vimos anteriormente la inyección SQL ciega basada en tiempo hace que la base de datos sea pausada por un intervalo de tiempo. Ejemplo:\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> ‘ AND SLEEP(10)=’          \u002F\u002FMYSQL\u003Cbr>\u003Cbr>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa>  WAITFOR DELAY ’0:0:5′    \u002F\u002FMSSQL\u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cstrong>Error-Based:\u003C\u002Fstrong> este tipo de inyecciones (basadas en error), son vulnerabilidades que nos devuelven un error de forma visible dentro del aplicativo web.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> ‘\u003Cbr>\u003Cbr>warning mysql_fetch_array() expects parameter 1 to be resource boolean given in\u003Cbr>\u003Cbr>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> ‘\u003Cbr>\u003Cbr>Server Error in ‘\u002F’ Application. Unclosed quotation mark before the character string ‘attack;’.\u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Union Query-Based:\u003C\u002Fspan> se basa en añadir una consulta que empiece con UNION ALL SELECT, revelando información sensible solo si la aplicación web vuelca toda la información devuelta por la BD en la página web atacada.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa> UNION ALL SELECT 1,2,3,4,5,6,7,8 -- \u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Stacked-queries:\u003C\u002Fspan> funcional solo en aquellos casos en los que la aplicación web permite la ejecución múltiple de consultas (separadas por ‘;’), y aprovecha esta funcionalidad para añadir todo tipo de consultas de ataque después de la consulta válida enviada.\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>\u003Ca href=\"http:\u002F\u002Fwww.sitioweb.com\u002Findex.php?id=3\">www.sitioweb.com\u002Findex.php?id=3\u003C\u002Fa>; DELETE FROM products\u003C\u002Fpre>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Ch3>Mensajes de error en relación a Motores de Base de Datos\u003C\u002Fh3>\r\n\u003Cp class=\"MsoNormal\">\u003Cstrong> \u003C\u002Fstrong>\u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Microsoft SQL Server\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>Server Error in ‘\u002F’ Application. Unclosed quotation mark before the character string ‘attack;’.\u003Cbr>\u003Cbr>Exception Details: System.Data.SqlClient.SqlException: Unclosed quotation mark before the character string ‘attack;’. \u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Mysql\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in \u002Fvar\u002Fwww\u002Fmyawesomestore.com\u002Fbuystuff.php on line 12\u003Cbr>\u003Cbr>Error: You have an error in your SQL syntax: check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’’ at line 12\u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cp>\u003Cspan>Oracle\u003C\u002Fspan>\u003C\u002Fp>\r\n\u003Cp> \u003C\u002Fp>\r\n\u003Cpre>java.sql.SQLException: ORA-00933: SQL command not properly ended at oracle.jdbc.dbaaccess.DBError.throwSqlException(DBError.java:180) at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208)\u003Cbr>\u003Cbr>Error: SQLExceptionjava.sql.SQLException: ORA-01756: quoted string not properly terminated\u003Cbr>\u003Cbr>\u003C\u002Fpre>\r\n\u003Cdiv> \u003C\u002Fdiv>\r\n\u003Cdiv>\u003Cspan>PostgreSQL\u003C\u002Fspan>\u003C\u002Fdiv>\r\n\u003Cdiv> \u003C\u002Fdiv>\r\n\u003Cpre>Query failed: ERROR: unterminated quoted string at or near “‘’’”\u003C\u002Fpre>\r\n\u003Cp> \u003C\u002Fp>",null,5,[23,34,43],{"slug":24,"title":25,"summary":26,"category":27,"author":28,"image_url":31,"image_thumb_url":31,"published_at":32,"updated_at":33},"write-up-maquina-webdeveloper1-de-vulnhub","Write-up máquina WebDeveloper1 de VulnHub","Buenas, soy Martin Frias (otra vez), en unos días se hará público mi primer curso en esta plataforma llamado “Hacking Ético boot2root”, en este curso abordaremos cómo es la resolución de una máquina tipo boot2root que yo elabore, ColddBox: Easy, disponible tanto en VulnHub como en TryHackMe.",{"slug":8,"name":9},{"username":29,"name":30,"avatar_url":20},"coldd","Martin Frias","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZzBQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9088ff4d9195016e15c3d716536a9879894e0d65\u002Fshutterstock_1269857698.jpg","2021-04-15T16:16:19-04:00","2026-10-26T11:48:31-03:00",{"slug":35,"title":36,"summary":37,"category":38,"author":39,"image_url":40,"image_thumb_url":40,"published_at":41,"updated_at":42},"uso-de-foca-para-extraer-metadatos","Uso de FOCA para extraer metadatos.","FOCA es una herramienta que permite extraer los metadatos de un fichero y\u002Fo buscar ficheros en una determinada web para posteriormente extraer sus metadatos, bien los metadatos básicamente son un grupo de datos que describen otros datos, es información “oculta” que puede existir dentro de algún fichero o incluso en las llamadas telefónicas y que nos proporciona más información sobre este.",{"slug":8,"name":9},{"username":29,"name":30,"avatar_url":20},"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ3dQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--c5a64e37a690cceb850d405b7fbe7fbc6adbc2ec\u002Fshutterstock_1184620222.jpg","2021-04-13T15:31:27-04:00","2026-10-26T11:55:40-03:00",{"slug":44,"title":45,"summary":46,"category":47,"author":48,"image_url":51,"image_thumb_url":51,"published_at":52,"updated_at":53},"la-importancia-de-un-soar-en-terminos-de-seguridad","La importancia de un SOAR en términos de seguridad","Es conocido que el avance tecnológico es cosa del día a día y así los peligros que este puede materializar en el Ciberespacio, es por esto que son muchas las herramientas necesarias a las cuales optan las empresas para proteger sus datos y activos. Pero esto tiene una curva cada vez más amplia, donde lo que se tiene integrado es un mero sinónimo de lo mucho que hace falta.",{"slug":8,"name":9},{"username":49,"name":50,"avatar_url":20},"user-1570553853","Flavio Esteban Canales Salvo","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ2tQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--9a8439d5a0017e9aef4bb6e77a0f6ebaee6f3e68\u002Fshutterstock_1147173719.jpg","2021-01-14T14:26:15-03:00","2026-10-26T16:30:30-03:00",{"slug":55,"title":56,"summary":57,"level":58,"specialty":59,"category":62,"instructor":63,"image_url":67,"image_thumb_url":67,"duration_seconds":68,"lessons_count":69,"students_count":70,"is_free":71,"coming_soon":72,"updated_at":73},"introduccion-a-la-seguridad","Introducción a la Seguridad","Este curso tiene como objetivo comenzar en el mundo de la seguridad informática.","Basicos",{"slug":60,"name":61},"enterprise-pentesting-training-ept","Penetration Testing Student",{"slug":8,"name":9},{"username":64,"name":65,"avatar_url":66},"misaelban","Misael Banales","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBam9HIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fcb46747ff2b0df3099425d0012f4da090b1db67\u002FIMG_2344.PNG","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaThOIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--ecc54bfb8fc4ff08be1e0805467c791c93fa803d\u002F2_-Introducci%C3%B3n-a-la-seguridad-inform%C3%A1tica-2.png",5085,10,39044,true,false,"2025-02-15T00:32:03-03:00",{"slug":60,"name":61,"summary":75,"level":76,"courses_count":21,"total_duration_seconds":77,"is_free":71,"image_url":78,"icon_url":79,"wallpaper_url":80,"updated_at":81},"Usted al finalizar la certificación Penetration Testing habrá obtenido el conocimiento para poder reconocer y analizar vulnerabilidades, explotar las debilidades en los sistemas y ayudar a protegerse de las amenazas,…","Básico",77388,"https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaUlQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--2514d038e8d6aff5caf896423c25af3de56fcd09\u002FStudent-Penetration-Testing-02.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaWdQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--a04208079ecbb8df87bdb8e7d6f8f822702d1d03\u002FPenetration-Testing-Student.png","https:\u002F\u002Fapi.backtrackacademy.com\u002Frails\u002Factive_storage\u002Fblobs\u002Fredirect\u002FeyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBaTRQIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--5e4754f3e0213a49757fe74e0c16177f96cb2692\u002FStudent-Penetration-Testing-02.jpg","2021-05-17T15:38:02-04:00"]