
Tokenizador, parser y analizador de SQL / SQLI
Analizador de tokens SQL / SQLI. Para
Vea https://www.client9.com/ para detalles y presentaciones.
Ejemplo simple:
#include <stdio.h>
#include <strings.h>
#include <errno.h>
#include "libinjection.h"
#include "libinjection_sqli.h"
int main(int argc, const char* argv[])
{
struct libinjection_sqli_state state;
int issqli;
const char* input = argv[1];
size_t slen = strlen(input);
/* in real-world, you would url-decode the input, etc */
libinjection_sqli_init(&state, input, slen, FLAG_NONE);
issqli = libinjection_is_sqli(&state);
if (issqli) {
fprintf(stderr, "sqli detected with fingerprint of '%s'\n", state.fingerprint);
}
return issqli;
}
$ gcc -Wall -Wextra examples.c libinjection_sqli.c
$ ./a.out "-1' and 1=1 union/* foo */select load_file('/etc/passwd')--"
sqli detected with fingerprint of 's&1UE'
Ejemplos más avanzados:
Vea CHANGELOG para detalles.
Las versiones se listan como "major.minor.point"
Las versiones principales son cambios significativos en la API y/o el formato de huella digital. Las aplicaciones necesitarán recompilación y/o refactorización.
Las versiones menores son cambios en el código C. Estos pueden incluir
Las versiones puntuales son solo cambios de datos. Estos pueden aplicarse de forma segura.
Los resultados de integración continua en https://travis-ci.org/client9/libinjection prueban lo siguiente:
Derechos de autor (c) 2012-2016 Nick Galbreath
Con licencia bajo la licencia de código abierto estándar BSD 3-Cláusulas. Vea COPYING para detalles.
El directorio src lo contiene todo, pero solo necesita copiar lo siguiente en su árbol de código fuente: