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。
版本格式为“主版本.次版本.修订号”
主版本:API 或指纹格式的重大变更。应用程序需要重新编译和/或重构。
次版本:C 代码的变更。可能包括:
修订号:纯数据变更。可以安全地应用。
持续集成结果见 https://travis-ci.org/client9/libinjection 测试了以下内容:
版权所有 (c) 2012-2016 Nick Galbreath
根据标准 BSD 3-Clause 开源许可证授权。 详情请参见 COPYING。
src 目录包含所有文件,但你只需将以下文件复制到你的源码树中: