Skip to content

cscli/libinjection

Repository files navigation

Build StatusCoverage Statuslicense

libinjection

SQL / SQLI tokenizer parser analyzer. For

See https://www.client9.com/ for details and presentations.

Simple example:

#include<stdio.h>#include<strings.h>#include<errno.h>#include"libinjection.h"#include"libinjection_sqli.h"intmain(intargc, constchar*argv[]){structlibinjection_sqli_statestate; intissqli; constchar*input=argv[1]; size_tslen=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)} returnissqli}
$ 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' 

More advanced samples:

VERSION INFORMATION

See CHANGELOG for details.

Versions are listed as "major.minor.point"

Major are significant changes to the API and/or fingerprint format. Applications will need recompiling and/or refactoring.

Minor are C code changes. These may include

  • logical change to detect or suppress
  • optimization changes
  • code refactoring

Point releases are purely data changes. These may be safely applied.

QUALITY AND DIAGNOSITICS

The continuous integration results at https://travis-ci.org/client9/libinjection tests the following:

LICENSE

Copyright (c) 2012-2016 Nick Galbreath

Licensed under the standard BSD 3-Clause open source license. See COPYING for details.

EMBEDDING

The src directory contains everything, but you only need to copy the following into your source tree:

About

SQL / SQLI tokenizer parser analyzer

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C68.5%
  • Python20.5%
  • Shell4.7%
  • HTML2.5%
  • Makefile2.2%
  • Lua1.0%
  • Other0.6%