Java框架安全

栏目: 数据库 · 发布时间: 8年前

内容简介:Java框架安全

(一)Mybatis注入问题

Mybatis是目前比较常用的ORM的框架,一般与SpringMVC框架整合较多,但使用不当会有 SQL 注入的风险。

Mybatis里mapper中SQL语句的写法支持两种形式的占位符,一种是#{value}一种是${value}.

使用#进行占位时,如:

< select id = "selectUsername" resultType = "com.example.bean.Admin" >

select * from admin where username ='#{username}'

</ select >

内部实现是使用了JDBC预编译技术:

String sql = “select * from admin where username=?” ;

PreparedSatement ps = conn.prepareStatement(sql) ;

Ps.setString(“admin”, username) ;

但是使用$进行占位时,在内部实现中是字符串拼接:

< select id = "selectUsername" resultType = "com.example.bean.Admin" >

select * from admin where username ='${value}'

</ select >

Java框架安全

代码测试一下:

Java框架安全

如果使用$占位符,是存在SQL注入风险的,一旦没有经过校验就会有风险。

因此,在审计中,一般要看mapper.xml或者一些实现的Mapper接口中的注解里是否有使用$占位符的情况,如果使用了则说明很大几率会有问题。

Java框架安全

(二)Hibernet注入问题

Hibernet框架同样都支持SQL语句拼接的情况,看以下代码:

Java框架安全

这里的input参数使用的拼接的方式进入了查询中,明显是有问题的,可以带入单引号引发注入漏洞。

安全的方式是使用占位符的方式,然后使用setXXX来填补占位符,内部实现是基于预编译的,这样就不会存在注入了。

(三)SpringMVC框架XSS问题

SpringMVC并没有针对XSS进行统一的解决,因此寻找代码安全问题和传统的审计思路一致。

比如:

Java框架安全

当SpringMVC和其他第三方模板进行整合时,比如和Freemarker进行整合,模板是不会对绑定数据进行自动净化处理的,因此也会存在XSS问题。

(四)Freemarker模板注入问题

目前比较流行的Freemarker和Velocity都有模板注入漏洞,可以直接执行系统命令或者getshell。

SpringMVC与Freemarker整合,当用户可以控制模板文件内容,包含但不限于编辑自定义模板、用户输入拼接在模板串中等:

Java框架安全

CreateHtmlFromString的代码如下,即编译给定的模板字符串和数据,生成HTML进行输出:

Java框架安全

当username为恶意模板语法时,会产生服务器端攻击,包括但不限于命令执行、getshell等:

Java框架安全

新建一个FreemarkerView,可以参考

org.springframework.web.servlet.view.freemarker.FreeMarkerView的实现,然后在

initApplicationContext方法中加入下面两行代码:

Java框架安全

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

测出转化率:营销优化的科学与艺术

测出转化率:营销优化的科学与艺术

【美】高尔德(Goward,C.) / 谭磊、唐捷译 / 电子工业出版社 / 2014-10-1 / 68.00元

本书作者通过已成功实现大幅提升转化率的案例,展示了大量以营销为核心的电子商务网站的测试设计方法及转化优化方案。书中作者强调了测试及优化思维的重要性,并就实现方法做了详细讲解。 通过本书,读者将学到如何能够在网站遇到发展和收入瓶颈时,测试出存在的问题并找到解决方案;如何可以深入地了解客户需求,并以此为基础优化网站,使其达到提升转化率的目的;如何提升网站的竞争优势,把在线营销渠道变成高效的转化通......一起来看看 《测出转化率:营销优化的科学与艺术》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具