
SQL / SQLI токенизатор парсер анализатор
SQL / SQLI токенизатор, парсер, анализатор. Для
См. https://www.client9.com/ для подробностей и презентаций.
Простой пример:
#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'
Более сложные примеры:
См. CHANGELOG для подробностей.
Версии указываются как "major.minor.point"
Major — это значительные изменения API и/или формата отпечатков. Приложения потребуют перекомпиляции и/или рефакторинга.
Minor — это изменения C-кода. Они могут включать:
Point-релизы содержат только изменения данных. Их можно безопасно применять.
Результаты непрерывной интеграции на https://travis-ci.org/client9/libinjection проверяют следующее:
Copyright (c) 2012-2016 Nick Galbreath
Лицензировано в соответствии со стандартной открытой лицензией BSD 3-Clause. См. COPYING для подробностей.
Директория src содержит всё, но вам нужно скопировать только следующие файлы в ваше дерево исходников: