domingo, 9 de setiembre de 2007

Inyecciones XPATH - I

Recordemos:
Las inyecciones SQL permiten modificar las consultas T-SQL originales, con propósitos deshonestos (obtener/alterar/borrar información de una base de datos SQL).
Nosotros hemos hecho un análisis serio de este tema en este blog, sírvase buscarlo por favor.
Las inyecciones HTML o XSS, consisten en incluir código script sobre las páginas web, para robar información (comoel número de su tarjeta de crédito, etc). De este tema también hicimos un análisis detallado en este blog.
Ahora,
continuándo con el tema de las inyecciones, vamos a hacer una serie de posts sobre las inyecciones XPATH.
Pero, qué son las inyecciones XPATH?
Pues, son los mismo que las inyecciones SQL, sólo que esta vez aplicados a base de datos XML. Clarísimo no?

Cómo que no entiendes?
Si SQL tiene un lenguaje de consulta llamado T-SQL, pues XML también tiene un lenguaje de consulta, llamado XPATH, ahhhhhhhhhhh.
En las inyecciones SQL, el objetivo son las bases de datos de tipo SQL.
En las inyecciones XPATH, el objetivo son las bases de datos de tipo XML.
Pero, cuál es más fácil de burlar... las bases de datos SQL o XML?
La verdad que XML es más fácil de burlar.
Te diré por qué:
1.-XPATH es un standard, siempre se escribe igual.
2.-El lenguaje SQL tiene diferentes implementaciones, por ejemplo: el T-SQL de MYSQL no es igual al de SQL SERVER y tampoco es igual al PL-SQL de Oracle, etc, son sólo parecidos, debido a ello, la inyección SQL para cada caso es distinta.

3.-El XPATH puede referirse a todas las partes del documento/database XML, osea: no hay restricciones a información del documento.
4.-En SQL, la cosa cambia, se puede limitar el acceso a sólo determinadas tablas de la base de datos, inclusive a columnas específicas de las tablas, pudiéndose de esta manera evitar muchas catástrofes, aún si hubiesen logrado ingresar a tu base de datos de manera ilícita.

En el próximo post vamos con los ejemplos.
Chau.

No hay comentarios.: