JAVAweb网站代码审计--入门本人还处于代码审计的初级阶段,此文章类似于编码规范,有啥建议,评论给我~由于刚开始学代码审计的时候,就感觉一团代码,不知道从何下嘴。先从底层开始审计:底层漏洞::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框架版本,因为有些低版本会存在远程命令执行。mybatisxml相关安全: 在SQL语句中,使用$进行传参,导致SQL注入;其他安全: 在使用java自带的环境时,如weblogic或者jboss,请注意查看版本号,因为此类环境低版本,大部分包含java反序列化漏洞,导致远程代码执行; glassfish环境某些版本存在任意文件读取; :DAO:是否存在拼接的SQL语句如:Stringsql="select*fromuserwhereid="+id;XML中:是否使用$,因为在xml中,#value#此时value是以参数的形式插入进去,$value$此时value是以字符串的形式直接插入到xml中,会导致sql注入;<selectid="abdc"resultMap="result">select*fromtb_card_binwherecard_length=#cardLength#andinstr(bin_no,'$cardNoFirstNum$')=1</select>:fckeditor,wordpress等等。查找完底层漏洞后,查看系统中相应的action或者do方法。如果用的是ssh框架的话,这些方法的相关配置保存在Struts2的配置文件中。如果用的是springmvc框架的话,(spring的配置文件),或者采用的是扫描注入的话,建议全局搜索RequestMapping等注入路径的关键字来确定action方法所在。以下,以action方法为例::SpringMVC默认支持两种文件上传操作方式。一种是使用MultipartHttpServletRequest或者MultipartFile作为方法参数,。代码举例:***@RequestMapping(value="/accounting/voucher/",method=)***@SuppressWarnings("unchecked")publicS
JAVA web网站代码审计 来自淘豆网m.daumloan.com转载请标明出处.