热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

java代码审计入门01

入门知识总体目标方向先熟悉一些基本的流程安装配置对应环境与分析工具常规漏洞代码审计分析一些框架漏洞代码审计分析学习方向个人认为主要的方向如下:学习了解java的基本

入门知识


总体目标方向


先熟悉一些基本的流程安装配置对应环境与分析工具常规漏洞代码审计分析一些框架漏洞代码审计分析

学习方向


个人认为主要的方向如下:学习了解java的基本使用学习掌握常见Web漏洞的原理(注入、XSS、SSRF等)学习审计常见漏洞学习审计中间件框架的知识(weblogic、fastjson等)

代码审计流程

配置分析环境没什么说的,没环境还分析个锤子熟悉业务流程功能总体分为多少块,每一块的功能代码是如何实现的分析程序架构比如说是MVC,每一层用了哪些第三方的架构,每一层用了哪些第三方的插件工具自动化分析先使用工具对代码扫描一遍人工审计结果(分两种)验证工具扫描结果,排除误报时间充裕的情况下,从前端jsp页面到后边参数的传递,到参数接收过滤处理,到返回前端结果,每一步都要研究明白,分析可能存在的问题。

War包

作用:

Web网站发布到中间件(tomcat、web logic等)部署,都是以war包的形式。中间件服务器将war包进行解析,假如我们能拿到这些war包,就可以反编译后进行代码审计

结构:
在这里插入图片描述

主要的审计过程都在Class文件

Java的内置对象

我们知道java之中的对象的使用一般都是要先new一下,在使用。但是其包含九大内置对象,无需声明(new)而直接使用。Request(请求)Response(相应)PageContext(在jsp中直接使用的java代码)Session(回话)Application(两个页面交互使用的共享对象)Out(直接输出的对象)ConfigPageException

Java中危险的函数


getParameter() 获取传入的参数,主要看看是否存在过滤,假设没有任何过滤,而是直接拿来使用,那么就极有可能存在漏洞getCOOKIEs()主要是看函数获取会话是干嘛的,假设仅仅是用来做对比和校验,那或许不存在风险,但是假设是将拿到的会话保存到数据库中就很危险。因为获取到的会话是从前端传递过来的,是不可信且存在风险的。getQueryString()数据库语句执行而get的一个字符串get headers()获取前端传值数据包头的值Runtime.exec()可以直接执行系统命令logger.info输出的命令,存在信息泄露的风险

三个关键字


Password存在泄露的风险Upload上传相关漏洞Download下载相关漏洞

推荐阅读
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入分析十大PHP开发框架
    随着PHP技术的发展,各类开发框架层出不穷,成为了开发者们热议的话题。本文将详细介绍并对比十款主流的PHP开发框架,旨在帮助开发者根据自身需求选择最合适的工具。 ... [详细]
  • 本文探讨了Java编程中MVC模式的优势与局限,以及如何利用Java开发一款基于鸟瞰视角的赛车游戏。 ... [详细]
  • Struts与Spring框架的集成指南
    本文详细介绍了如何将Struts和Spring两个流行的Java Web开发框架进行整合,涵盖从环境配置到代码实现的具体步骤。 ... [详细]
  • 本文介绍如何将自定义项目设置为Tomcat的默认访问项目,使得通过IP地址访问时直接展示该自定义项目。提供了三种配置方法:修改项目路径、调整配置文件以及使用WAR包部署。 ... [详细]
  • 解决FCKeditor应用主题后上传问题及优化配置
    本文介绍了在Freetextbox收费后选择FCKeditor作为替代方案时遇到的上传问题及其解决方案。通过调整配置文件和调试工具,最终解决了上传失败的问题,并对相关配置进行了优化。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • springMVC JRS303验证 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • 前言无论是对于刚入行工作还是已经工作几年的java开发者来说,面试求职始终是你需要直面的一件事情。首先梳理自己的知识体系,针对性准备,会有事半功倍的效果。我们往往会把重点放在技术上 ... [详细]
  • MySQL锁机制详解
    本文深入探讨了MySQL中的锁机制,包括表级锁、行级锁以及元数据锁,通过实例详细解释了各种锁的工作原理及其应用场景。同时,文章还介绍了如何通过锁来优化数据库性能,避免常见的并发问题。 ... [详细]
  • 本文探讨了浏览器的同源策略限制及其对 AJAX 请求的影响,并详细介绍了如何在 Spring Boot 应用中优雅地处理跨域请求,特别是当请求包含自定义 Headers 时的解决方案。 ... [详细]
  • 开发笔记:小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表
    开发笔记:小程序分类页实现三级分类,顶部导航栏,左侧分类栏,右侧数据列表 ... [详细]
  • 强人工智能时代,区块链的角色与前景
    随着强人工智能的崛起,区块链技术在新的技术生态中扮演着怎样的角色?本文探讨了区块链与强人工智能之间的互补关系及其在未来技术发展中的重要性。 ... [详细]
author-avatar
光明使者之快乐天使_101
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有