libinjection随笔(二):libinjection动态连接库使用

ModSecurity 3.x + Nginx 编译安装 在CentOS7上,制作nginx_modsecurity3 安装包,附件有制作完成的 rpm 安装包,系统环境匹配的情况下可以直接使用。 阅读详情

前面文章介绍过libinjection编译和例子的使用,那么如果需要在工程中使用编译好的动态连接库该如何处理呢?

我们知道libinjection时c语言的代码,如何在java中调用呢?

提到c,提到java,难道是采用JNI来编写调用接口么,虽然可以,但是还有更方便的选择哦,那就是使用JNA。

只要你用过了 JNA (java native access) , 那你可能就再也不想用 JNI 了。

当然JNA还是无法取代JNI的啦,因为JNA只能java到c的访问,c到java的访问还是老老实实使用JNI吧。

JNA的具体介绍就不做太多说明了,文章下面有使用的例子大家可以参考下。网上也有很多前辈大佬们写的文章可以参阅的。

例子

1、搭建Maven工程,引入jar包

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>4.1.0</version>
</dependency>

2、参考代码

package com.tt;

import com.sun.jna.Library;
import com.sun.jna.Native;

/**
 * @author xiaobao
 * @version 1.0
 * 类说明
 * @date 2020/5/21 17:05
 */
public class Injection {
    //继承Library,用于加载库文件
    public interface InjectionLib extends Library {
        // 调用linux下面的so文件,注意,这里只要写injection就可以了,不要写libinjection,也不要加后缀
        InjectionLib INSTANCE = (InjectionLib) Native.loadLibrary("injection", InjectionLib.class);
        int libinjection_sqli(String input, int slen, byte[] fingerprint);
    }

    public int libinjection_sqli(String input, int slen, byte[] fingerprint) {
        return InjectionLib.INSTANCE.libinjection_sqli(input, slen, fingerprint);
    }

    public static void main(String[] args) {
        Injection ts = new Injection();
        byte[] fingerprint = {0};
        String input = "sleep(1)";
        int slen = input.length();
        int issqli;

        issqli = ts.libinjection_sqli(input, slen, fingerprint);
        if (issqli > 0) {
            System.out.println("sqli with fingerprint");
        } else {
            System.out.println("not sqli");
        }
    }
}

#运行
java -jar com.tt-1.0-SNAPSHOT.jar 

说好的操作简单呢,怎么报错了……差评
在这里插入图片描述
仔细看下报错信息,原来需要在指定的目录下
在这里插入图片描述
建立对应的目录,不同平台的目录结构不同哈,32和64位的也不一样的,大家注意哈

再次打包运行看看

java -jar com.tt-1.0-SNAPSHOT.jar 
sqli with fingerprint

运行成功

Naxsi集成LibInjection:构建智能WAF防御层实战指南 Web应用防火墙(WAF)是保障Web应用安全的关键防线,其核心原理是通过分析HTTP请求流量,识别并拦截恶意攻击。传统基于正则表达式和模式匹配的规则引擎,在面对日益复杂的SQL注入和跨站脚本(XSS)混淆攻击时,常面临漏报与误报的挑战。为解决此问题,引入基于词法分析和指纹匹配的专用检测库成为技术演进方向,它能更精准地识别攻击本质,提升防御深度。这种技术组合的价值在于,在保持高性能的同时,显著增强了对高级别、混淆型攻击的检出能力,尤其适用于电商、金融等高安全要求场景。本文以Nginx生态下的Naxsi模块集 阅读详情

相关推荐

lua-ffi-libinjection:LuaJIT FFI绑定用于libinjection

名称 lua-resty-libinjection-用于libinjection的LuaJIT FFI绑定 地位 该库正在积极开发中,可以投入生产 描述 该库为 ,SQL / SQLi和XSS标记程序和分析器提供FFI绑定。 安装 像安装其他任何OpenResty lua模块一样,安装此库。 libinjection共享对象文件必须存在于,因此您应该将.so文件符号链接或复制到适当的位置。 概要 access_by_lua_block { local libinjection = require " resty.libinjection " -- simple SQLi API local issqli, fingerprint = libinjection. sqli (string) -- context-specific bindings are

SQL注入语义分析库libinjection

libinjection是一款用于防御SQL注入攻击的开源软件库。它是由C语言编写的,可以嵌入到任何Web应用程序中,并可以较为准确地检测和防止恶意SQL注入语句。libinjection采用了基于正则表达式的技术来识别和拦截SQL注入攻击,同时其开放源代码的特点也使得其具备了较高的可定制性和扩展性。

西京刀客 1733

libinjection:SQL SQLI标记器解析器分析器

射液 SQL / SQLI标记生成器解析器分析器。 为了 C和C ++ (外部端口) [LuaJIT / FFI]( )(外部端口) 有关详细信息和演示,请参见 。 简单的例子: # include < stdio> # include < strings> # include < errno> # 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);

SQL注入与libinjection分析(2)Libinjection

SQL注入与libinjection分析(2)Libinjection1. 什么是Libinjection?2. 源码3. Libinjection处理流程3.1 Libinjection总的框架3.2 libinjection_is_sqli() 处理3.3 libinjection对特征码的定义4. 举例子5. Libinjection总结5.1 Libinjection库的优点参考 1. 什...

哈尼的博客 3643

解决Windows 10安装语言包时遇到的0x800F0954错误

在安装Windows 10操作系统的语言包时,如果遇到错误代码0x800F0954的提示,这无疑会让许多用户感到困惑和无助。这个错误通常意味着在安装过程中遇到了一些阻碍,导致无法正常完成语言包的安装。本文将为大家详细解析这个错误代码0x800F0954,并提供一系列有效的解决方法,帮助大家顺利安装所需的语言包。

nntxthml的博客 3793

基于YOLOv5与海康工业相机的高分辨率实时检测实践

本文详细介绍了基于YOLOv5与海康工业相机的高分辨率实时检测实践,通过优化相机配置、网络传输和YOLOv5模型适配,实现了每秒15帧以上的实时检测性能,缺陷识别准确率高达99.2%。特别适用于电子元件焊接点检测、精密齿轮齿痕检查等对微小缺陷敏感的场景。

weixin_30872499的博客 473

libinjection随笔(一):sql注入分析库,libinjection编译使用

前言 SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编写时的疏忽,通过SQL语句,实现无账号登录,甚至篡改数据库。当出现了相关注入的操作时,锅还是会降临的…… 那如何减少或者避免数据库注入的发生呢? =========》libinjection 作为一个开源的sql注入和xxs攻击的词法解析库,它比较独特的是没有使用正则表达式而是一个完善的特征库来匹配检查SQL注入。相比传统正则匹配识别SQL注入在于速度快以及低误报,低漏报 。 源码网址如下: http://

小白的专栏 1247

利用Skipper跨层追踪技术高效定位LVS Short问题

本文详细介绍了如何利用Skipper跨层追踪技术高效定位LVS Short问题。通过解析Skipper的跨层trace net原理和实战操作步骤,帮助芯片设计工程师快速识别版图中的短路问题,显著提升验证效率。文章还提供了处理大规模设计的高级技巧和常见问题排查方法。

weixin_29239661的博客 507

libinjection 开源项目使用教程

libinjection 项目的目录结构如下: ``` libinjection/ ├── data/ ├── lua/ ├── misc/ ├── php/ ├── python/ ├── src/ ├── tests/ ├── .gitignore ├── .travis.yml ├── CHANGELOG ├── CHANGELOG.md ├── COPYING ├── Makefile ...

gitblog_01089的博客 512

从RRT到平滑轨迹:机械臂避障规划仿真全流程解析

本文详细解析了机械臂避障规划从RRT算法到平滑轨迹优化的全流程,包括MATLAB实现、碰撞检测工程实践及轨迹平滑优化技巧。通过RRT算法在关节空间的路径搜索与Minimum Jerk/Snap优化,实现机械臂在复杂环境中的高效安全运动,适用于工业自动化与机器人控制领域。

weixin_29051811的博客 293

cmw500 lte非信令测试_WiFi信令测试在研发过程中的作用

  1、关于信令测试的故事  2016年的某天,某著名网络产品公司技术负责人致电寻求技术支持:我们的无线路由器遇到了一个困惑:我们某款路由器应用于实际WiFi网络中时,WiFi终端接入非常困难。但是我们使用测试工具检测此路由器,它的所有物理射频指标都非常优异。不知道是为什么?  我来到了测试现场看到:WiFi路由器受控于芯片公司的测试工具,其WiFi发射机指标在非信令测试仪上显示:无论功率、EVM...

weixin_39662263的博客 3924

libinjection开源库的研究总结

一、前言       在项目中的需要增加detectSQLi和detectXSS方法,故研究一下libinjection中的源码结构。       如下图所示,在规则引擎中调用了detectSQLi之后,会跑到libinjection中执行libinjection_sqli,然后执行libinjection_sqli_init()初始化libinjection_sqli_state结构体,回调...

zhangge3663的博客 4205

Unity游戏开发实战:用柏林噪声打造3D随机地形(附完整C#代码)

本文详细介绍了如何在Unity游戏开发中使用柏林噪声算法生成3D随机地形,包含完整的C#代码实现。从基础柏林噪声原理到高级参数控制,再到性能优化和常见问题解决,帮助开发者掌握程序化地形生成技术,打造丰富多变的游戏世界。

weixin_29281941的博客 98

libinjection 项目推荐

libinjection 是一个开源的 SQL/SQLI 令牌解析器和分析器,主要用于检测和防御 SQL 注入攻击。该项目主要使用 C 语言编写,同时也支持其他编程语言如 PHP、Python、Lua 和 Java 的外部端口。 ## 项目核心功能 libinjection 的核心功能包括: 1. **SQL/SQLI 令牌解析**:能够解析和识别 SQL 查询中的关键字和结构。 2. **...

gitblog_01061的博客 309

泛微Ecology流程数据表结构解析:workflow_requestbase和workflow_currentoperator到底怎么关联查询?

本文深入解析泛微Ecology系统中workflow_requestbase和workflow_currentoperator表的结构与关联机制,提供SQL查询语句示例,帮助开发者高效查询流程数据。涵盖待办事项、已办事项、办结事项和流程监控等典型场景,并分享性能优化技巧和常见问题排查指南。

weixin_33738555的博客 803

UDS自动化测试-Service 0x27(CAPL调用dll实现key计算)

相信读者基于Diagnostic/ISO TP Confighration中cdd、dll文件的测试并不陌生,本文基于其的基础上,介绍在capl中调用内置的函数diagGenerateKeyFromSeed实现27服务解锁,从而进行诊断自动化测试。本文基于4个byte的Seed、16个byte的Key的安全访问,实现27服务的自动化测试。需要加载项目使用的cdd文件,如果没有的情况下可以使用canoe例程中默认的cdd文件。

诊断协议那些事儿's blog 2052

libinjection 开源项目教程

`libinjection` 也有一个 PHP 扩展,可以直接在 PHP 应用中集成 SQL 注入检测功能。 ### 4.3 Python 绑定 对于 Python 开发者,`libinjection` 提供了 Python 绑定,可以通过 `pip` 安装并集成到 Python 项目中。 通过这些生态项目,`libinjection` 可以轻松地集成到多种编程语言和环境中,提供强大的 SQ...

gitblog_01048的博客 507

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

简单分析SQL注入语义分析库Libinjection

一、前言 这次主要讲开源SQL注入语义分析库libinjection,如果有发现其他开源SQL语义分析库的欢迎告知。libinjection的程序分析由Simon友情提供,需要看完整报告的可以加群看。 二、libinjection程序分析 从流程图上看,libinjection首先是初始化issqlii变量,接着设置数据结构并初始化变量state,libinjection_sqli_in...

thlzjfefe的博客 876

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

安装SQL注入检测库libinjection

github: https://github.com/client9/libinjection wiki:   https://github.com/client9/libinjection/wiki 在libinjection-go做优化: grapeSQLI(https://github.com/koangel/grapeSQLI) libinjection在2012年在Black Ha...

梦想专栏 4437

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【亲测免费】 强大的SQL注入检测工具:libinjection

**libinjection** 是一款开源的SQL注入检测库,旨在帮助开发者快速、准确地识别和防范SQL注入攻击。该项目支持多种编程语言,包括C、C++、PHP、Python、Lua和Java,并且拥有丰富的社区支持和活跃的维护团队。libinjection通过高效的算法和全面的测试覆盖,确保了其在各种应用场景中的可靠性和稳定性。 ## 项目技术分析 libinjection的核心技术在于其...

gitblog_01082的博客 579

基于libinjection 代码分析

#基于libinjection 代码分析 libinjection 库是github上开源的,目前好多厂家都使用的是它,没有使用正则表达式来进行SQL注入检测,据说速度比正则快,接下来咱们分析一下。 网上查找的牛逼点: No memory allocation No threads No external dependencies Fixed stack size 100k checks a second 贴例子 int testIsSQL(void) { const char* const s[] =

qq_22023237的博客 485

SQL注入与libinjection分析(5)源码分析之指纹函数fingerprint和查找函数lookup_word剖析

SQL注入与libinjection分析(5)源码分析之指纹函数fingerprint和查找函数lookup_word剖析1. libinjection_sqli_fingerprint2. libinjection_sqli_lookup_word 1. libinjection_sqli_fingerprint /* 重新置位 sql_state 因为,sql注入三种形式都调用此接口,每次调用都重新置位 */ libinjection_sqli_reset /* libinjection

哈尼的博客 1347

SQL注入与libinjection分析(3)源码分析之一些重要的结构体说明

SQL注入与libinjection分析(3)源码分析1. libinjection_is_sqli参考 1. libinjection_is_sqli 指纹识别函数 待续…… 参考 https://zhuanlan.zhihu.com/p/44292411 https://zhuanlan.zhihu.com/p/44537204 https://www.anquanke.com/post/id/86097 ...

哈尼的博客 1086

探索安全边界:Libinjection SQL注入防御库

探索安全边界:Libinjection SQL注入防御库 Libinjection是一个强大的C语言库,专为检测和防止SQL注入(SQLi)攻击而设计。它也提供了PHP、Python和Lua等不同语言的接口,使得这个工具在各种开发环境中都能轻松集成。通过高效且精确的解析算法,Libinjection能帮助你的应用程序抵挡恶意输入,保障系统的安全性。 1、项目介绍 Libinjection项目的核心...

gitblog_00078的博客 643

Naxsi与LibInjection集成:高级SQL/XSS检测技术深度剖析

Naxsi作为一款开源高性能Web应用防火墙(WAF),通过与LibInjection库的深度集成,为NGINX提供了业界领先的SQL注入和XSS攻击检测能力。这种强强联合的技术组合让网站安全防护达到了全新的高度! ## 🔍 Naxsi与LibInjection:完美的安全防护组合 Naxsi采用独特的"默认拒绝"安全模型,而LibInjection则提供了先进的词法分析算法。两者的结合创造

gitblog_01020的博客 935

开源项目libinjection快速指南及常见问题解答

libinjection是一个广泛应用于C和C++环境下的SQL和SQL注入(SQLi)解析器和分析工具。它同样支持PHP、Python和Lua,甚至有一个外部端口用于Java通过LuaJIT/FFI实现。此库旨在帮助开发者检测并防止SQL注入攻击,提升应用的安全性。libinjection通过提供一个API来分析给定的字符串,判断其是否可能构成SQL注入威胁,并提供了指纹识别功能以区分不同类型的...

gitblog_00573的博客 586
上一篇: libinjection随笔(一):sql注入分析库,libinjection编译使用
下一篇: Flink学习笔记(一):为什么选择flink
胖胖的战士
博客等级 码龄18年 104粉丝 98原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值