(2)MySQL案例-结合应用

结论: mysql中间件注入延时10s增强后,应用访问数据库延时了10s,即注入成功。
销毁注入的延时功能,应用访问数据库没有延时,即销毁成功。

针对“(1)MySQL案例-结合应用”字节码增强失败,重新翻阅了源码,进行复盘。

一:重新打包lcm-module.jar

把chaosblade-exec-jvm工程进行部分修改输出,以观察其变化。
1.1 解决压chaosblade-java-agent-1.2.0.jar到chaosblade-1.2.0/lib/lcm/guangfang下

1.2 修改chaosblade-exec-jvm工程里的两个文件
1.2.1. SandboxModule.java的id=lcm
与chaosblade-java-agent-1.2.0.jar的模块重了,所以要修改成其它名字。
1.2.2 在CreateHandler.java里的handle里设定输出
System.out.println(“lcm CreateHandler handle suid= “+suid+”,target= “+target+”,actionArg=”+actionArg);

1.3 把修改并编译后的SandboxModule.class CreateHandler.class 替换掉guangfang下的文件,并打包为lcm-module.jar

把文件夹/Users/xxx/Documents/1guanda/git/chao/chaosblade-1.2.0/lib/lcm/guangfang下所有的文件打包到lcm-module.jar里

/Users/xxx/Documents/1guanda/git/chao/chaosblade-1.2.0/lib/lcm/> jar cvfm lcm-module.jar guangfang/META-INF/MANIFEST.MF -C guangfang/ .

1.4 把lcm-module.jar包放到sandbox/lib/module/lcm-module.jar

二:启动springboot-mysql工程。

代码请参考上一篇
进程号为 11807

三:向目标jvm 挂载模块

./sandbox.sh -p 11807 -l

在这里插入图片描述

四:激活id为lcm的模块

./sandbox.sh -p 11807  -d 'sandbox-module-mgr/active?ids=lcm'

五:字节码增强mysql

5.1 向目标mysql数据库名test进行10s的延时增强。

./sandbox.sh -p 11807  -d 'lcm/create?suid=11&target=mysql&action=delay&time=10000&database=test'

在这里插入图片描述
备注:
lcm:为模块的id。
create:为模块里的对外接收的方法。
suid:值任意,在源码里此字段只作了非空判断,猜测是供blade使用的。
target=mysql:参数,是向mysql插件进行注入。
action=delay:参数,延时的action。
time=10000:参数,延时的时长,毫秒。
database=test:参数,数据库名test。
5.2 springboot-mysql工程输出
由于在CreateHandler.java里打了输出,所以看到如下图的信息。
在这里插入图片描述

5.3 查看springboot-mysql访问时间
从图可以看出,查询时间延时了10s。即上面的增强成功。
在这里插入图片描述

六:销毁mysql的注入

6.1 销毁延时。

./sandbox.sh -p 11807  -d 'lcm/destroy?suid=11&target=mysql&action=delay'

在这里插入图片描述
6.2 查看springboot-mysql访问时间
从图可以看出,查询时间startTime=endTime,无延时。即上面的销毁成功。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值