常见框架与组合

常见框架

Struts2

SpringMVC

Spring Boot

框架执行流程

View层:视图层

Controller层:表现层

Service层:业务层

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

java 审计 漏洞函数_Java Web代码审计流程与漏洞函数相关推荐

  1. java虚拟函数_java实现多态中的虚函数相关概念

    本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...

  2. 【漏洞修复】Web服务器HTTP设置漏洞

    文章目录 Web服务器HTTP设置漏洞 Web服务器HTTP头信息公开 默认的nginx HTTP服务器设置 Web服务器错误页面信息泄露 修复方案 服务验证 Web服务器HTTP设置漏洞 Web服务 ...

  3. js 调用c语言函数看,web前端:JS高级---函数中的this的指向,函数的不同调用方式...

    在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用.要善于利用函数,以减少重复编写程序段的工作量. 函数分为全局函数.全局静态函数;在类中还可以定义构造函数.析构函数.拷贝构造函数 ...

  4. java 利特尔法则_Java Web应用中调优线程池的重要性

    不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求.线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的.本文主要介绍Java线程池的使用和如何正确的配置线程 ...

  5. java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...

    前段时间练习了一个求闰年的功能,现在就可以用上啦,这次写一个不借助类库的时间函数,利用基础代码写一个计算求日期处于当年的第多少天的函数. 虽然也有简单的方法,例如直接定义每月的天数累加,然后加上当月的 ...

  6. java 写一个商店_Java Web开发之基于Session的购物商店实现方法

    本文实例讲述了Java Web开发之基于Session的购物商店实现方法.分享给大家供大家参考,具体如下: package cn.com.shopping; import java.io.IOExce ...

  7. java怎么加定时器_JAVA WEB程序中添加定时器

    JAVA WEB程序中添加定时器 //这是我的定时器类,用来定时执行某段任务: package com.my.time; import java.text.ParseException; import ...

  8. java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍

    java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...

  9. java怎么调用存储函数_java中调用存储过程或存储函数的方法

    java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...

最新文章

  1. k8s入门系列之介绍篇
  2. Leangoo大讲堂:免费Scrum敏捷开发实战—武汉站
  3. idea 内存溢出解决方法
  4. es安装IK中文分词器
  5. pytorch nn.LogSoftmax
  6. BZOJ 2436 Noi嘉年华(优化DP)
  7. jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回
  8. msvcr100.dll丢失修复方法
  9. eigen一维向量_Eigen中的矩阵及向量运算
  10. WDF驱动开发- CONTEXT和IO QUEUE
  11. 快速获取今天是星期几
  12. 编程语言c语言程序包括的几种语句
  13. 如何快速删除CSV、Excel、Markdown表格的重复行?
  14. 蚂蚁集团IPO的小秘密:人均月薪5.5万,利润有望超中国石油
  15. 互联网摸鱼日报(2022-12-15)
  16. 以web形式实现模拟炸金花游戏
  17. 【视频】视频存储技术
  18. Visual Studio/MFC编程入门之MFC常用类:CString类
  19. vue3过渡和动画详解
  20. 最详细的“ECC-汉明码”原理讲解

热门文章

  1. 交换机是如何对数据包打标签去标签的_条形码软件如何在标签纸上套打可变条码...
  2. rational rose 启动选择_Rational Rose打开问题
  3. java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...
  4. 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发
  5. 组件使用中的细节点02
  6. java 设计模式 prototype_Java设计模式之Prototype原型模式
  7. vue 判断同一数组内的值是否一直_vue一些笔记
  8. BugkuCTF-MISC题虎符
  9. 品质主管每日工作需要做哪些_做微信社群运营需要用到哪些工具来铺助工作呢?...
  10. mysql导数据出指定数量_mysql导出指定数据或部份数据的方法