浅谈RASP技术攻防之实战环境配置篇

2019-04-26 约 1216 字 预计阅读 3 分钟

声明:本文 【浅谈RASP技术攻防之实战环境配置篇】 由作者 iiusky 于 2019-04-26 09:41:00 首发 先知社区 曾经 浏览数 25 次

感谢 iiusky 的辛苦付出!

[toc]

概述

本文没有什么实在的技术含量,主要是为了照顾不会使用IDEA&maven配置环境的小伙伴写的一篇文章。如果对本篇文章不感兴趣,可以直接查看下一篇文章《浅谈RASP技术攻防之实战[代码实现篇]》,文章中有什么不懂得地方,大家可以来我博客[Sky's自留地]一起讨论。笔者sky(iiusky)目前就职于《安百科技》,欢迎大家一起来探讨RASP攻防技术。

浅谈RASP技术攻防之实战[环境配置篇] 和 浅谈RASP技术攻防之实战[代码实现篇]中的代码已经上传到github,地址为:java_rasp_example

IDEA开发环境配置

初始化项目

首先我们在IDEA中新建一个maven项目

取名为JavawebAgent


然后当前的目录结构如下:

删除src目录,然后右键新建Module

依然选择Maven项目

然后在ArtifactId处填入agent

然后确定即可

然后再次重复一遍上面的新建Module的操作,将第二小步中的ArtifactId改为test,第三小步中的Module Name 改为test-struts2,如下图所示


这时候的目录结构如下

其中agent目录为我们要实现agent的主要代码区域,test-struts2为测试web代码区域。(注:test-struts2不是必选的)

test-struts2模块基本配置

test-struts2部分的代码这边就不进行复述了,大家可以去本项目的地址中直接下载test-struts2内容。

agent模块基本配置

pom.xml包配置

agent这个pom包配置的话有坑,这个以后在说,先看pom.xml内容吧。

<dependencies>

        <dependency>
            <groupId>org.ow2.asm</groupId>
            <artifactId>asm-all</artifactId>
            <version>5.1</version>
        </dependency>

    </dependencies>

    <build>
        <finalName>agent</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.3.2</version>
                <configuration>
                    <archive>
                        <manifestFile>src/main/resources/MANIFEST.MF</manifestFile>
                    </archive>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <artifactSet>
                                <includes>
                                    <include>commons-io:commons-io:jar:*</include>
                                    <include>org.ow2.asm:asm-all:jar:*</include>
                                </includes>
                            </artifactSet>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.21.0</version>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>
        </plugins>
    </build>

将上述内容复制到agent模块下的pom.xml中

创建MAINFEST.NF文件

在resources目录下创建MAINFEST.NF文件,文件内容如下

Manifest-Version: 1.0
Can-Retransform-Classes: true
Can-Redefine-Classes: true
Can-Set-Native-Method-Prefix: true

maven自动打包配置

在idea中右上部分找到Add Configurations,然后点击此按钮

在弹出的窗口中点左上角的+,选择maven

然后点下图①的位置选择工作目录,在②的位置选择agent,在③的位置填入clean install

完成以后如下图所示,然后点击OK保存即可

这时候右上角已经可以看到我们刚刚配置的maven自动打包功能了,agent每改一处都需要重新build,不然无法生效。

创建Agent主要实现代码包

在agent包下面的java文件夹下右键选择新建package,然后填入你的包名,我这边的包名为

cn.org.javaweb.agent

到目前为止,我们已经将基本环境以及目录结构配置完成了,下篇文章我们接着说代码实现部分的内容。

关键词:[‘安全技术’, ‘WEB安全’]


author

旭达网络

旭达网络技术博客,曾记录各种技术问题,一贴搞定.
本文采用知识共享署名 4.0 国际许可协议进行许可。

We notice you're using an adblocker. If you like our webite please keep us running by whitelisting this site in your ad blocker. We’re serving quality, related ads only. Thank you!

I've whitelisted your website.

Not now