Java 安全&SPEL 表达式&SSTI 模版注入&XXE&JDBC&MyBatis 注入

https://github.com/bewhale/JavaSec
https://github.com/j3ers3/Hello-Java-Sec
https://mp.weixin.qq.com/s/ZO4tpz9ys6kCIryNhA5nYw
#Java 安全 -SQL 注入 -JDBC&MyBatis
-JDBC
1 、采用 Statement 方法拼接 SQL 语句
2 PrepareStatement 会对 SQL 语句进行预编译,但如果直接采取拼接的方式构造
SQL ,此时进行预编译也无用。
3 JDBCTemplate Spring JDBC 的封装,如果使用拼接语句便会产生注入
安全写法: SQL 语句占位符( ? + PrepareStatement 预编译
-MyBatis
MyBatis 支持两种参数符号,一种是 # ,另一种是 $ # 使用预编译, $ 使用拼接 SQL
1 order by 注入:由于使用 #{} 会将对象转成字符串,形成 order by "user"
desc 造成错误,因此很多研发会采用 ${} 来解决,从而造成注入 .
2 like 注入:模糊搜索时,直接使用 '%#{q}%' 会报错,部分研发图方便直接改成
'%${q}%' 从而造成注入 .
3 in 注入: in 之后多个 id 查询时使用 # 同样会报错,从而造成注入 .
- 代码审计案例: inxedu 后台 MyBatis 注入
#Java 安全 -XXE 注入 -Reader&Builder
XXE (XML External Entity Injection), XML 外部实体注入,当开发人员配置
XML 解析功能允许外部实体引用时,攻击者可利用这一可引发安全问题的配置方式,
实施任意文件读取、内网端口探测、命令执行、拒绝服务等攻击。
-XMLReader
-SAXReader
-SAXBuilder
-Unmarshaller
-DocumentBuilder
/**
* 审计的函数
* 1. XMLReader
* 2. SAXReader
* 3. DocumentBuilder
* 4. XMLStreamReader
* 5. SAXBuilder
* 6. SAXParser
* 7. SAXSource
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值