JNI技术绕过rasp防护实现jsp webshell

本文介绍了如何利用JNI技术绕过基于Java、PHP运行期堆栈信息分析的安全防护工具,如RASP。通过在jsp中使用JNI调用C/C++函数,实现dll或lib文件的加载,从而执行命令并获取回显,以此来规避安全防护。作者提供了在不同环境(如Linux、Mac、Windows)下的实现细节,并分享了实战案例,成功绕过了RASP的阻断。
摘要由CSDN通过智能技术生成

背景

原理

使用

    技术要点

    实战使用

其他

背景

笔者近日看到了这样一篇文章:那些年我们堵住的洞 – OpenRASP纪实

    想到rasp这类工具是基于java、php运行期的堆栈信息进行分析,可以尝试使用jni技术进行绕过。java技术栈中的jni的原理是使用java调用c、c++函数,具体实现的思路是jsp编译为class文件,该class通过jni技术调用另外一处dll里的函数绕过黑名单执行命令获取回显,即可实现rasp和安全防护软件的绕过。github地址:https://github.com/nanolikeyou/jniwebshell

原理使用

    以我们要实现的jsp webshell命名为test.jsp为例。由于jni技术需要先通过javah+.class文件生成.h开头的c头文件,jsp是一种特殊的class文件,而jsp经过Tomcat编译class文件,命名遵从test.jsp ->> org.apache.jsp.test_jsp.class,所以我们需要新建package为org.apache.jsp,类名为test_jsp的.java文件。

package org.apache.jsp;

public class test_jsp
{
    class JniClass
    {
        public native String exec( String string );

    }

}

cd到编译生成的target/class目录,使用javah org.apache.jsp.tes

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值