zoukankan      html  css  js  c++  java
  • Java Web代码审计流程与漏洞函数

    常见框架与组合

    常见框架

    • Struts2
    • SpringMVC
    • Spring Boot

    框架执行流程

    1. View层:视图层
    2. Controller层:表现层
    3. Service层:业务层
    4. Dom层:持久层

    常见组合

    • Spring+Struts2+Hibernate
    • Spring+SpringMVC+Mybatis
    • Spring Boot+Mybatis

    代码审计方法

    根据业务功能审计

    优点:明确程序的架构以及业务逻辑,明确数据流向,可以从获取参数-->表现层-->业务层-->持久层,通读源码;

    缺点:耗费时间;

    根据敏感函数审计

    优点:可以快速高效的挖出想要的漏洞,判断敏感函数上下文,追踪参数源头;

    缺点:覆盖不了逻辑漏洞,不了解程序的基本框架;

     

    审计流程

    1、确定框架;

    通过以下三种方式确定框架:

    • web.xml
    • 看导入的jar包或pom.xml
    • 看配置文件
      • Struts2 配置文件:struts.xml
      • Spring 配置文件:applicationContext.xml
      • Spring MVC 配置文件:spring-mvc.xml
      • Hibernate 配置文件:Hibernate.cfg.xml
      • Mybaits 配置文件:mybatis-config.xml

     2、查看是否存在拦截器

    通过查看web.xml文件,确定是否配置相关拦截器。

    命令执行函数

    • GroovyShell.evaluate()
    • Runtime.getRuntime().exec()
    • ProcessBuilder().start()

    文件上传函数

    • ServletFileUpload()
    • FileItemStream()
    • MultipartFile()

    SSRF函数

    在Java中分为两类:一类只支持http,https协议,如HttpURLConnection、HttpClient、Request、okhttp;一类支持所有协议,如URLConnection、URL。

    HttpURLConnection.getInputStream()

    URLConnection.getInputStream()

    Request.Get.execute()

    Request.Post.execute()

    URL.openStream()

    ImageIO.read()

    OkHttpClient.newCall.execute()

    HttpClents.execute()

    HttpClent.execute()

    CORS跨域漏洞 

    CORS跨域设置:

    response.setHeader("Access-Control-Allow-Origin","*");
    response.setHeader("Access-Control-Allow-Credentials","true");

     或者

    @CrossOrigin("*")
    

     

    Jsonp劫持

    • jsonp跨域设置
    response.setHeader("Access-Control-Allow-Origin","*");
    •  callback

    反序列化

    • readObject

    杂项

    out

    XSS漏洞

    当out.print("");可控的时候,就会导致XSS漏洞。

    requests

     

    response

    session

    session失效时间问题

    session.setMaxInactiveInterval();

    用户退出,session未销毁问题

    session.invalidate(); //销毁Web应用所有的session
    session.removeAttribute(); //移除指定session

    application

    pageContent

  • 相关阅读:
    SD卡测试
    测试人员可能会遇到的问题
    HDU 1024 Max Sum Plus Plus
    HDU 1176 免费馅饼
    HDU 1257 最少拦截系统
    HDU 1087 Super Jumping! Jumping! Jumping!
    poj 1328 Radar Installation
    poj 1753 Flip Game
    HDU 1003 Max Sum
    HDU 5592 ZYB's Premutation(BestCoder Round #65 C)
  • 原文地址:https://www.cnblogs.com/endust/p/12081817.html
Copyright © 2011-2022 走看看