JAVA代码审计
文章平均质量分 90
安全大哥
接渗透测试,护网,安全咨询,安全培训,安全溯源,应急响应等业务,需要私信我
展开
-
Burpsuite插件开发
一、Burp插件介绍和编程语言选择插件是什么?扩展burp功能的程序,依赖burp提供的API,让使用者可以开发一些自己想要的功能。插件可以干什么?请求和响应包的修改:比如在每个请求包中加如自定义的header自定义UI界面:插件可以实现一个自己的tab,方便图像化操作自定义扫描插件:当出现了新的漏洞,我们就可以编写自己的扫描插件,来自动化发现这类漏洞访问burp中的一些关键数据:比如proxy中的请求记录、sitemap中请求响应、扫描发现的漏洞(issue)插件怎么使用?先讲burp插件的基本使用:加载原创 2022-06-01 11:14:06 · 3989 阅读 · 2 评论 -
JAVA安全编码规范
Java安全编码规范-1.0.6 by k4n5ha0Java安全编码规范-1.0.6 by k4n5ha0 编写依据与参考文件: 1.《信息安全技术 应用软件安全编程指南》(国标 GBT38674-2020) 2.《Common Weakness Enumeration》 - 国际通用计算机软件缺陷字典 3.《OWASP Top 10 2017》 - 2017年十大Web 应用程序安全风险 4.《fortify - 代码审计规则》转载 2021-11-10 17:04:21 · 7836 阅读 · 2 评论 -
fortify源代码扫描问题分析汇总
编号 漏洞名称 漏洞危害 修复建议 1 Dynamic Code Evaluation: Unsafe Deserialization 动态代码评估:不安全的反序列化 Actuator正是Spring Boot提供的对应用系统的监控和管理的集成功能,可以查看应用配置的详细信息,例如自动化配置信息、创建的Spring beans信息、系统环境变量的配置信以及Web请求的详细信息等。在使用...原创 2021-07-21 17:00:17 · 13780 阅读 · 2 评论 -
【JAVA-WEB常见漏洞-本地命令执行漏洞】
本地命令执行漏洞攻击者一旦可以在服务器中执行任意本地系统命令就意味着服务器已被非法控制,在Java中可用于执行系统命令的方式有API有:java.lang.Runtime、java.lang.ProcessBuilder、java.lang.UNIXProcess/ProcessImpl。1. Java本地命令执行测试示例 - 存在本地命令执行代码(java.lang.Runtime):<%@ page contentType="text/html;charset=UTF-8" la转载 2020-11-24 18:18:20 · 1849 阅读 · 0 评论 -
【JAVA-WEB常见漏洞-XSS漏洞】
XSS漏洞攻击者利用XSS(Cross-site scripting)漏洞攻击可以在用户的浏览器中执行JS恶意脚本,XSS攻击可以实现用户会话劫持、钓鱼攻击、恶意重定向、点击劫持、挂马、XSS蠕虫等,XSS攻击类型分为:反射型、存储型、DOM型。1. 反射型XSS攻击示例 - 存在反射型XSS的xss.jsp代码:<%=request.getParameter("input")%>攻击者通过传入恶意的input参数值可以在用户浏览器中注入一段JavaScript脚本.转载 2020-11-23 16:44:21 · 1633 阅读 · 0 评论 -
【JAVA-WEB常见漏洞-SQL注入漏洞】
SQL注入漏洞SQL注入是网络攻击中最为常见的攻击方式,通过向服务器端发送恶意的SQL语句或SQL语句片段注入到服务器端的数据库查询逻辑中,改变原有的查询逻辑,从而实现类恶意读取服务器数据库数据,攻击者甚至可以利用数据库内部函数或缺陷提升权限,从而获取服务器权限。用户后台系统登陆注入1.1 登陆位置注入测试后台登陆系统注入在前些年是非常常见的,我们通常会使用' or '1'='1之类的注入语句来构建一个查询结果永为真的SQL,俗称:万能密码。示例 - 用户登陆注入代码:<%@转载 2020-11-23 15:58:59 · 1876 阅读 · 0 评论 -
【JAVA-WEB常见漏洞】任意文件上传漏洞
任意文件上传漏洞Web应用通常都会包含文件上传功能,用户可以将其本地的文件上传到Web服务器上。如果服务器端没有能够正确的检测用户上传的文件类型是否合法(例如上传了jsp后缀的WebShell)就将文件写入到服务器中就可能会导致服务器被非法入侵。1. Apache commons fileupload文件上传测试Apache commons-fileupload是一个非常常用的文件上传解析库,Spring MVC、Struts2、Tomcat等底层处理文件上传请求都是使用的这个库。示例 -转载 2020-11-18 18:05:46 · 5204 阅读 · 0 评论 -
【JAVA-WEB常见漏洞】文件访问类
本章节将讲解与Java文件或目录访问安全性问题,常见的Java文件操作相关的漏洞大致有如下类型:任意目录遍历 任意文件、目录复制 任意文件读取/下载 任意文件、目录修改/重命名 任意文件、目录删除 ......我们通常把这类漏洞归为一个类型,因为产生漏洞的原因都是因为程序对文件或目录访问控制不严、程序内部逻辑错误导致的任意文件或目录恶意访问漏洞。任意文件读取任意文件读写漏洞即因为没有验证请求的资源文件是否合法导致的,此类漏洞在Java中有着较高的几率出现,任意文件读取漏洞原理很...转载 2020-11-17 17:22:40 · 2376 阅读 · 0 评论 -
【JAVA-WEB基础学习】Cookie 和 Session 对象
1、Cookie是最常用的Http会话跟踪机制,且所有Servlet容器都应该支持。当客户端不接受Cookie时,服务端可使用URL重写的方式作为会话跟踪方式。会话ID必须被编码为URL字符串中的一个路径参数,参数的名字必须是jsessionid。浏览器和服务端创建会话(Session)后,服务端将生成一个唯一的会话ID(sessionid)用于标识用户身份,然后会将这个会话ID通过Cookie的形式返回给浏览器,浏览器接受到Cookie后会在每次请求后端服务的时候带上服务端设置Cookie值,服务..转载 2020-11-16 16:26:44 · 126 阅读 · 0 评论 -
【JAVA-WEB基础学习】Filter和Servlet总结
1、对于基于Filter和Servlet实现的简单架构项目,代码审计的重心集中于找出所有的Filter分析其过滤规则,找出是否有做全局的安全过滤、敏感的URL地址是否有做权限校验并尝试绕过Filter过滤。第二点则是找出所有的Servlet,分析Servlet的业务是否存在安全问题,如果存在安全问题是否可以利用?是否有权限访问?利用时是否被Filter过滤等问题,切勿看到Servlet、JSP中的漏洞点就妄下定论,不要忘了Servlet前面很有可能存在一个全局安全过滤的Filter。Filter和Ser转载 2020-11-16 16:24:49 · 224 阅读 · 0 评论 -
【JAVA-WEB基础学习】Filter
1、FilterURL请求资源权限验证、用户登陆检测等功能。Filter是一个接口,实现一个Filter只需要重写init、doFilter、destroy方法即可,其中过滤逻辑都在doFilter方法中实现。Filter的配置类似于Servlet,由<filter>和<filter-mapping>两组标签组成,如果Servlet版本大于3.0同样可以使用注解的方式配置Filter。基于注解实现的Filter示例:...转载 2020-11-16 16:22:52 · 164 阅读 · 0 评论 -
【JAVA-WEB基础学习】JSP、Servlet之间的关系
1、JSP、JSPX 文件是可以直接被 Java 容器直接解析的动态脚本, jsp 和其他脚本语言无异,不但可以用于页面数据展示,也可以用来处理后端业务逻辑。从本质上说 JSP 就是一个Servlet,因为 jsp 文件最终会被编译成 class 文件,而这个 class 文件实际上就是一个特殊的Servlet。JSP文件会被编译成一个java类文件,如index.jsp在Tomcat中Jasper编译后会生成index_jsp.java和index_jsp.class两个文件。而index_j..转载 2020-11-16 16:20:43 · 526 阅读 · 0 评论 -
【JAVA-WEB基础学习】JSP基础
1、JSP基础(JavaServer Pages) 是与PHP、ASP、ASP.NET等类似的脚本语言,JSP是为了简化Servlet的处理流程而出现的替代品,早期的Java EE因为只能使用Servlet来处理客户端请求而显得非常的繁琐和不便,使用JSP可以快速的完成后端逻辑请求。正因为在JSP中可以直接调用Java代码来实现后端逻辑的这一特性,黑客通常会编写带有恶意攻击的JSP文件(俗称WebShell)来实现对服务器资源的恶意请求和控制。现代的MVC框架(如:Spring MVC 5...转载 2020-11-16 16:18:38 · 133 阅读 · 0 评论 -
【JAVA-WEB基础学习】Request&Response
1、在B/S架构中最重要的就是浏览器和服务器端交互,Java EE将其封装为请求和响应对象,即request(HttpServletRequest)和response(HttpServletResponse)。HttpServletRequest对象用于处理来自客户端的请求,当客户端通过HTTP协议访问服务器时,HTTP 中的所有信息都封装在这个对象中,通过HttpServletRequest对象可以获取到客户端请求的所有信息。HttpServletResponse对象用于响应客户端的请求...转载 2020-11-16 16:13:31 · 155 阅读 · 0 评论 -
【JAVA-WEB基础学习】Servlet
1、ServletServlet是在Java Web容器中运行的小程序,通常我们用Servlet来处理一些较为复杂的服务器端的业务逻辑。Servlet是Java EE的核心,也是所有的MVC框架的实现的根本!2、基于Web.xml配置Servlet3.0之前的版本都需要在web.xml中配置servlet标签,servlet标签是由servlet和servlet-mapping标签组成的,两者之间通过在servlet和servlet-mapping标签中同样的servle...转载 2020-11-16 16:10:16 · 122 阅读 · 0 评论 -
JAVA静态代码扫描参考文章
1、使用Gitlab+Jenkins+SonarQube实现代码审计指南:https://bloodzer0.github.io/ossa/other-security-branch/devsecops/gjs/#_32、SonarQube安全漏洞扫描:https://zhuanlan.zhihu.com/p/791861063、find-sec-bugs静态代码审计:https://www.anquanke.com/post/id/1544764、find-sec-bugs开源代码以及博客:http原创 2020-11-11 17:41:54 · 354 阅读 · 0 评论 -
Gitlab+Jenkins+SonarQube 实现代码审计指南
原文:https://bloodzer0.github.io/ossa/other-security-branch/devsecops/gjs/#_3Gitlab+Jenkins+SonarQube 实现代码审计指南环境说明虚拟系统:Centos7本机系统:MacGitlab:社区版11.10.0Gitlab-Runner:11.10.0SonarQube:社区版7.7SonarScanner:3.3.0Jenkins:2.174虚拟机配置Gitlab# 解决依赖yum转载 2020-11-11 15:48:55 · 1041 阅读 · 0 评论 -
JAVA代码审计业务安全Checklist
类别 测试项 认证鉴权 登录密码是否加密 是否可猜解用户名 是否可批量注册用户 是否存在验证码 验证码有效性 是否登录会话固定 会话ID是否足够复杂 注销功能是否有效 登录身份校验算法是否可逆 修改密码处是否验证旧密码 Cookie中是否存在敏感信息 信息泄露 是否存在中间件错误页面 是否暴露异常处理报错信息 是否存在源代码泄露 源代码注释信息 是否存在用户敏感信息明文传输 文件I/O 是否存在任意文件上传 是否原创 2020-11-06 15:48:10 · 932 阅读 · 0 评论 -
JAVA代码审计之环境准备和辅助工具篇
1、在开始Java代码审计前请自行安装好Java开发环境,建议使用MacOS、Ubuntu操作系统。所谓“工欲善其事,必先利其器”,合理的使用一些辅助工具可以极大的提供我们的代码审计的效率和质量!强烈推荐下列辅助工具:1.Jetbrains IDEA(IDE)2.Sublime text(文本编辑器)3.JD-GUI(反编译)4.Fernflower(反编译)5.Bytecode-Viewer6.Eclipse(IDE)7.NetBeans(IDE)...原创 2020-11-05 15:54:07 · 654 阅读 · 1 评论 -
JAVA-WEB代码审计学习地址
1、https://javasec.org/2、https://xz.aliyun.com/t/7945#toc-273、https://blog.csdn.net/fly_hps/article/details/87118519?biz_id=102&utm_term=java%E4%BB%A3%E7%A0%81%E5%AE%A1%E8%AE%A1&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaidu原创 2020-11-05 15:46:47 · 681 阅读 · 0 评论