因最近测试的Android APP其对发送的数据包进行了加密,所以需要编写burp插件对数据包进行处理。这里APP使用了AES/CBC/PKCS7Padding填充方式对数据进行加密传输。当把加密过程移植到burp插件Java代码中时,发现Java本身不支持PKCS7Padding填充方式,奇怪的是Android却支持。Google一把后得知可以使用第三方jar包Bouncy Castle扩展支持。本来以为只需要将jar包放入lib再Build Path就解决问题了,结果发现在eclipse测试的时候的确一切顺利,但是当把它加载到burp插件模块的时候发现该问题依然存在。折腾一番后终于解决了问题,下面主要记录burpsuite插件实现PKCS7Padding填充方式过程中遇到的问题解决方法,供有需求的朋友参考节省时间。
Java AES使用AES/CBC/PKCS7Padding报错Cannot find any provider supporting AES/CBC/PKCS7Padding
报错原因是java不支持PKCS7Padding填充方式。该问题可以使用Bouncy Castle支持解决,注意如果直接将Bouncy Castle的jar包放到lib再Build Path,在eclipse本地环境可以正常运行,最后导出burp插件jar时却无法正常引用,所以需要将Bouncy Castle的jar包放入系统库中,然后直接调用即可,具体操作步骤如下:
1. 下载Bouncy Castle扩展包bcprov-ext-jdk15on-155.jar
,将它复制到%JDK_HOME%\jre\lib\ext
目录下。如果有安装jre,还需要把它复制到%J