java代码审计
hu4wufu
心有惊雷,生似静湖
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
接口测试
首先要明白的是接口很简单。看了一个漏洞,直接全局搜索api就可,api显示的路径造成了信息泄露。原创 2021-03-16 11:33:45 · 353 阅读 · 0 评论 -
java代码审计之整体思路
首先入口:看使用的框架。一般的javaweb项目 都有web.xml 因为这个配置文件是servlet容器启动时所需要根据其内容进行加载的。其他快速的方法,比如:路由函数(根据注解或者XMl配置去查找下一步请求谁,调用谁)、问题函数、过滤函数(查看是否有漏的)。...原创 2020-05-31 11:11:55 · 1118 阅读 · 1 评论 -
java代码审计之SSM框架审计
主体思路:代码审计的核心思想就是追踪参数,而追踪参数的步骤就是程序执行的步骤,说白了代码审计就是一个跟踪程序执行步骤的一个过程,当我们知道了SSM框架的一个执行流程,自然就知道了如何如跟踪一个参数,剩下的就是去观察在参数传递的过程中有没有一些常见的漏洞点。web.xml文件主要的工作包括两部分:1、web.xml启动spring容器;2、DispathcheServlet的声明;3、其余工...原创 2020-05-07 21:44:58 · 993 阅读 · 0 评论 -
java代码审计之SSRF
概述SSRF 形成的原因大都是由于代码中提供了从其他服务器应用获取数据的功能但没有对目标地址做过滤与限制。比如从指定 URL 链接获取图片、下载等。漏洞示例此处以 HttpURLConnection 为例,示例代码片段如下:String url = request.getParameter("picurl");StringBuffer response = new StringBuffer();URL pic = new URL(url);HttpURLConnection con原创 2020-05-09 21:07:39 · 1330 阅读 · 0 评论 -
java代码审计之checklist
业务层安全常见问题业务层的安全问题集中在业务逻辑和越权问题上,我们在代码审计的过程中尽可能的去理解系统的业务流程以便于发现隐藏在业务中的安全问题。业务层中常见的安全问题Checklist 用户登陆、用户注册、找回密码等功能中密码信息未采用加密算法。 用户登陆、用户注册、找回密码等功能中未采用验证码或验证码未做安全刷新(未刷新Session中验证码的值)导致的撞库、密码爆破漏洞。 找回密码逻辑问题(如:可直接跳过验证逻辑直接发包修改)。 手机、邮箱验证、找回密码等.原创 2020-05-09 21:07:23 · 1550 阅读 · 0 评论 -
Java代码审计之命令执行
介绍由于业务需求,程序有可能要执行系统命令的功能,但如果执行的命令用户可控,业务上有没有做好限制,就可能出现命令执行漏洞。漏洞示例此处以 getRuntime 为例,示例代码片段如下:String cmd = request.getParameter("cmd");Runtime.getRuntime().exec(cmd);审计策略这种漏洞原理上很简单,重点是找到执行系统命令的函数,看命令是否可控。在一些特殊的业务场景是能判断出是否存在此类功能,这里举个典型的实例场景,.原创 2020-05-08 21:09:58 · 973 阅读 · 0 评论 -
java代码审计之反序列化(敏感信息泄露)
前言在 Java 环境中,允许处于不同受信域的组件进行数据通信,从而出现跨受信边界的数据传输。不要序列化未加密的敏感数据;不要允许序列化绕过安全管理器。public class GPSLocation implements Serializable{private double x; // sensitive fieldprivate double y; // sensitive...原创 2020-05-07 21:36:28 · 5060 阅读 · 0 评论 -
java代码审计之反序列化(静态内部类)
对非静态内部类的序列化依赖编译器,且随着平台的不同而不同,容易产生错误。对内部类的序列化会导致外部类的实例也被序列化。这样有可能泄露敏感数据。public class DistributeData implements SerializedName{public class CodeDetail {...}}CodeDetail 并不会被序列化。public class Di...原创 2020-05-07 21:37:21 · 1102 阅读 · 0 评论 -
java代码审计之反序列化(权限问题)
概述Serializable 的类的固有序列化方法包括 readObject, writeObject。Serializable 的类的固有序列化方法,还包括 readResolve, writeReplace。它们是为了单例 (singleton) 类而专门设计的。根据权限最小化原则,一般情况下这些方法必须被声明为 private void。否则如果 Serializable的类开放 ...原创 2020-05-07 21:36:08 · 405 阅读 · 0 评论 -
java代码审计之反序列化(代码执行)
前言序列化是让 Java 对象脱离 Java 运行环境的一种手段,可以有效的实现多平台之间的通信、对象持久化存储。只有实现了 Serializable 和 Externalizable 接口的类的对象才能被序列化。Java 程序使用 ObjectInputStream 对象的 readObject 方法将反序列化数据转换为 java 对象。但当输入的反序列化的数据可被用户控制,那么攻击者即可...原创 2020-05-06 21:40:20 · 605 阅读 · 0 评论 -
java代码审计之CSRF
介绍这种漏洞一般不需要通过代码审计来发掘直接黑盒最方便CSRF原理审计策略此类漏洞一般都会在框架中解决修复,所以在审计 csrf 漏洞时。首先要熟悉框架对 CSRF 的防护方案,一般审计时可查看增删改请求重是否有 token、 formtoken 等关键字以及是否有对请求的 Referer 有进行校验。手动测试时,如果有 token 等关键则替换 token 值为自定义值并重...原创 2020-05-06 14:59:27 · 757 阅读 · 0 评论 -
java代码审计文章集合
java环境基础搭建Java Web开发环境配置IDEA编辑器开发java web,从0创建项目IDEA动态调试IDEA配置tomcatmaven配置和IDEA创建maven项目IDEA如何导入eclipse项目java基础环境配置,来自漏洞社区java语法知识菜鸟教程理解java的三大特性之封装理解java的三大特性之继承理解java的三大特性之多...原创 2020-05-06 00:33:52 · 489 阅读 · 0 评论 -
静态代码安全扫描工具Cobra
简介眼镜蛇(Cobra)是一款定位于静态代码安全分析的工具,目标是为了找出源代码中存在的安全隐患或者漏洞。GITHUB:https://github.com/WhaleShark-Team/cobra文档:http://cobra.feei.cn/原理利用函数定位及正则表达式扫描代码文件,提示可能存在的漏洞,使用python开发,拥有支持开发语言多,升级简单、自定义规则 简单的...原创 2020-04-20 23:41:21 · 1057 阅读 · 0 评论 -
java代码审计之XXE
介绍XML 文档结构包括 XML 声明、 DTD 文档类型定义(可选)、文档元素。文档类型定义(DTD)的作用是定义XML 文档的合法构建模块。 DTD 可以在 XML 文档内声明,也可以外部引用。内部声明 DTD:引用外部 DTD:当允许引用外部实体时,恶意攻击者即可构造恶意内容访问服务器资源,如读取 passwd 文件:<?xml version="1.0" encod...原创 2020-04-16 20:30:32 · 513 阅读 · 0 评论 -
java代码审计之XSS
介绍:对于和后端有交互的地方没有做参数的接收和输入输出过滤,导致恶意攻击者可以插入一些恶意的 js 语句来获取应用的敏感信息。审计思路:扫描所有的 HttpServletRequest 查看相关的上下文环境。这里以javasec为例:先将1存储进去这里是将xss存储到了cookie里边访问就可以看见了javasec处理方法:这里提供几个具...原创 2020-04-16 19:50:21 · 1071 阅读 · 0 评论 -
Spring MVC Autobinding漏洞
危险函数: "@SessionAttributes", "@ModelAttribute" @ModelAttribute注解在Spring mvc中,注解@ModelAttribute是一个非常常用的注解,其功能主要在两方面:运用在参数上,会将客户端传递过来的参数按名称注入到指定对象中,并且会将这个对象自动加入ModelMap中,便于View层使用; 运用在方...原创 2020-04-14 23:36:32 · 468 阅读 · 0 评论 -
java代码审计之sql注入
检查点:数据库查询前言:在 Java 中,操作SQL的主要有以下几种方式: java.sql.Statement java.sql.PrepareStatement 使用第三方ORM框架 ——MyBatis或Hibernate 下面我们来分析以上几种执行SQL的方式。java.sql.Statementjava.sql.Stateme...原创 2020-04-13 15:28:47 · 1041 阅读 · 0 评论 -
SPelInjection
前言:在Spring中存在缺陷的RCE的断裂都是因SpEL表达注入产生。SpEL:Spring表达式语言全称为Spring Expression Language,是Spring框架创建的一种表达式语言,它支持在运行时查询和操纵对象图表。这里要注意的是SpEL通过API接口的形式创建的,允许将其集成到其他应用程序和框架中。SpEL使用实例:在Spring Framework中...原创 2020-04-13 00:12:53 · 570 阅读 · 0 评论 -
Java源代码危险函数
JavaID通过常规匹配来识别Java源代码中的某些危险函数。有关更多详细信息,请在主站点github.com/Cryin/JavaID上查看源代码。XXE: "SAXReader", "DocumentBuilder", "XMLStreamReader", "SAXBuilder", "SAXParser", "XMLReader", "SA...转载 2020-04-12 17:21:35 · 1234 阅读 · 0 评论
分享