-
-
[原创]JAVA代码审计主要漏洞
-
发表于:
2017-5-20 10:51
7870
-
本人还处于代码审计的初级阶段,由于刚开始学代码审计的时候,就感觉一团代码,不知道从何下嘴。先从底层开始审计:
底层漏洞:
1. 查看该系统所用框架:
Struts2的相关安全:
(1) 低版本的struts2,低版本的Struts2存在很多已知的版本漏洞。一经使用,很容易造成比较大的危害。
(2) 开启 Struts2的动态调用方法,现在发现的如s2-033 ,s2-032等漏洞,都是由于系统开启了动态调用方法,导致远程代码执行。
(3) 在jsp页面中使用Struts2的ognl表达式传输数据。
(4) 开启Struts2的devMode,易造成远程代码执行
(5) 存在Struts2本身自带的ognl页面
(6) 使用Struts2自带的redirect等方法
Spring的相关安全:
Spring在jsp尽量使用el表达式,spring的boot框架远程命令执行就是由于el表达导致的。
mybatis xml相关安全:
在SQL语句中,使用$进行传参;
其他安全:
在使用java自带的环境时,如weblogic或者jboss,请注意查看版本号,因为此类环境低版本,大部分包含java反序列化漏洞,导致远程代码执行。
2. 查找SQL注入:
DAO:是否存在拼接的SQL语句
如:String sql = "select * from user where id="+id;
XML中:是否使用$,因为在xml中,#value#此时value是以参数的形式插入进去,$value$此时value是以字符串的形式直接插入到xml中,易导致sql注入;
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课