java 审计 漏洞函数_Java Web代码审计流程与漏洞函数
常见框架与组合
常见框架
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代码审计流程与漏洞函数相关推荐
- java虚拟函数_java实现多态中的虚函数相关概念
本文转载自参考博客 1. Java虚函数 虚函数的存在是为了多态. C++中普通成员函数加上virtual关键字就成为虚函数 Java中其实没有虚函数的概念,它的普通函数就相当于C++的虚函数,动态绑 ...
- 【漏洞修复】Web服务器HTTP设置漏洞
文章目录 Web服务器HTTP设置漏洞 Web服务器HTTP头信息公开 默认的nginx HTTP服务器设置 Web服务器错误页面信息泄露 修复方案 服务验证 Web服务器HTTP设置漏洞 Web服务 ...
- js 调用c语言函数看,web前端:JS高级---函数中的this的指向,函数的不同调用方式...
在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用.要善于利用函数,以减少重复编写程序段的工作量. 函数分为全局函数.全局静态函数;在类中还可以定义构造函数.析构函数.拷贝构造函数 ...
- java 利特尔法则_Java Web应用中调优线程池的重要性
不论你是否关注,Java Web应用都或多或少的使用了线程池来处理请求.线程池的实现细节可能会被忽视,但是有关于线程池的使用和调优迟早是需要了解的.本文主要介绍Java线程池的使用和如何正确的配置线程 ...
- java调用系统时间函数_JAVA自学笔记:不使用系统函数来计算日期处于当年的第多少天...
前段时间练习了一个求闰年的功能,现在就可以用上啦,这次写一个不借助类库的时间函数,利用基础代码写一个计算求日期处于当年的第多少天的函数. 虽然也有简单的方法,例如直接定义每月的天数累加,然后加上当月的 ...
- java 写一个商店_Java Web开发之基于Session的购物商店实现方法
本文实例讲述了Java Web开发之基于Session的购物商店实现方法.分享给大家供大家参考,具体如下: package cn.com.shopping; import java.io.IOExce ...
- java怎么加定时器_JAVA WEB程序中添加定时器
JAVA WEB程序中添加定时器 //这是我的定时器类,用来定时执行某段任务: package com.my.time; import java.text.ParseException; import ...
- java中正则表达式函数_java正则表达式PHP中的正则表达式函数介绍
java正则表达式PHP中的正则表达式函数介绍 正则表达式(Regular Expression) 正则表达式系统: 1.POSIX 2.Perl PHP中使用的regex是PCRE: NOTE:PC ...
- java怎么调用存储函数_java中调用存储过程或存储函数的方法
java中调用存储过程或存储函数的方法 1.调用存储过程:CallableStatement clstmt = null;try {clstmt = conn.prepareCall("{c ...
最新文章
- k8s入门系列之介绍篇
- Leangoo大讲堂:免费Scrum敏捷开发实战—武汉站
- idea 内存溢出解决方法
- es安装IK中文分词器
- pytorch nn.LogSoftmax
- BZOJ 2436 Noi嘉年华(优化DP)
- jsp浏览图像bean原理分析与改良-JSP实用教程(第三版)耿祥义 张跃平编著第4章例题4_9-动态获取文件夹中的文件并返回
- msvcr100.dll丢失修复方法
- eigen一维向量_Eigen中的矩阵及向量运算
- WDF驱动开发- CONTEXT和IO QUEUE
- 快速获取今天是星期几
- 编程语言c语言程序包括的几种语句
- 如何快速删除CSV、Excel、Markdown表格的重复行?
- 蚂蚁集团IPO的小秘密:人均月薪5.5万,利润有望超中国石油
- 互联网摸鱼日报(2022-12-15)
- 以web形式实现模拟炸金花游戏
- 【视频】视频存储技术
- Visual Studio/MFC编程入门之MFC常用类:CString类
- vue3过渡和动画详解
- 最详细的“ECC-汉明码”原理讲解
热门文章
- 交换机是如何对数据包打标签去标签的_条形码软件如何在标签纸上套打可变条码...
- rational rose 启动选择_Rational Rose打开问题
- java组合框的事件有哪些_博为峰Java技术文章 ——JavaSE Swing列表框选取事件的处理...
- 基于SpringBoot+Vue开发的前后端分离博客项目-Java后端接口开发
- 组件使用中的细节点02
- java 设计模式 prototype_Java设计模式之Prototype原型模式
- vue 判断同一数组内的值是否一直_vue一些笔记
- BugkuCTF-MISC题虎符
- 品质主管每日工作需要做哪些_做微信社群运营需要用到哪些工具来铺助工作呢?...
- mysql导数据出指定数量_mysql导出指定数据或部份数据的方法