JAVA web网站代码审计.docVIP

  • 4
  • 0
  • 约3.31千字
  • 约 3页
  • 2019-12-09 发布于河北
  • 举报
JAVA web网站代码审计--入门 本人还处于代码审计的初级阶段,此文章类似于编码规范,有啥建议,评论给我~ 由于刚开始学代码审计的时候,就感觉一团代码,不知道从何下嘴。先从底层开始审计: 底层漏洞: 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框架版本,因为有些低版本会存在远程命令执行。 mybatis xml相关安全: ??? 在SQL语句中,使用$进行传参,导致SQL注入; 其他安全: ??? 在使用java自带的环境时,如weblogic或者jboss,请注意查看版本号,因为此类环境低版本,大部分包含java反序列化漏洞,导致远程代码执行; ???? glassfish环境某些版本存在任意文件读取; ? 2. 查找SQL注入: DAO:是否存在拼接的SQL语句 如:String sql = select * from user where id=+id; XML中:是否使用$,因为在xml中,#value#此时value是以参数的形式插入进去,$value$此时value是以字符串的形式直接插入到xml中,会导致sql注入; select id=abdc resultMap=resultselect * from tb_card_bin where card_length = #cardLength# and instr(bin_no, $cardNoFirstNum$) = 1/select 3.第三方控件漏洞 如:fckeditor,wordpress等等。 查找完底层漏洞后,查看系统中相应的action或者do方法。如果用的是ssh框架的话,这些方法的相关配置保存在Struts2的配置文件中。如果用的是springmvc框架的话,这些方法可能保存在applicationContext.xml(spring的配置文件),或者采用的是扫描注入的话,建议全局搜索RequestMapping等注入路径的关键字来确定action方法所在。以下,以action方法为例: 4. 文件上传漏洞 文件上传的action有一个比较显著的特征:Spring MVC默认支持两种文件上传操作方式。一种是使用MultipartHttpServletRequest或者MultipartFile作为方法参数,第二种是使用javax.servlet.http.Part作为方法参数。 代码举例: @RequestMapping(value = /accounting/voucher/importVoucher.htm, method = RequestMethod.POST) @SuppressWarnings(unchecked) public String importBankGlide(@RequestParam(voucherFile)MultipartFile voucherFile, @RequestParam(returnFile) MultipartFile returnFile,ServletRequest request, ModelMap model) { ?if (voucherFile == null || voucherFile.getSize() 1) { ?? String errorMessage = 导入文件为空; ?? model.put(ERROR_MESSAGE, errorMessage); ?? return /accounting/voucher/importVoucher; ?} ?String extFile = ; ?if (returnFile.getSize() 0) {//并未对文件进行检查,直接上传 ?? File file = new File(model.get(path)); ?} else { ?? model.put(ERROR_MESSAGE, 上传附件失败,请重新发起: + result.getResul

文档评论(0)

1亿VIP精品文档

相关文档