JAVA代码审计笔记

news/2024/7/7 22:46:27

预编译不是万能的,否则就不会出现这么多的SQL注入漏洞。order by后面的语句,是不能够用预编译进行处理的,只能通过拼接进行操作,因此需要手动过滤。
SQL注入漏洞的防范方法
1、预编译
2、类型转换
xss漏洞的危害
窃取Cookie,键盘记录,截屏,网页挂马,命令执行
xss漏洞产生的原因
用户的输入没有经过处理便直接进行了输出
目录穿越漏洞简介
Web应用程序没有去检验文件名中是否存在“…/”等特殊字符,没有对访问的文件进行限制,导致目录穿越,读取到本不应读取到的内容
目录穿越漏洞的修复方法
对文件名进行过滤,防止出现“./”等特殊符号;采用ID索引的方法来下载文件,而不是直接通过文件名;对目录进行限制;合理配置权限
URL跳转漏洞简介
目前很多的Web应用因为业务需要,需与内部的其他服务或者第三方的服务进行交互,这样就需要重定向的功能,由当前网页跳转到第三方的网页
重定向函数在代码当中就有,不需要我们自己添加,而且URL跳转的漏洞是出现在具有URL跳转功能的代码当中
命令执行漏洞简介
命令执行漏洞是指应用有时需要调用一些执行系统命令的函数,如果系统命令代码未对用户可控参数做过滤,则当用户能控制这些函数中的参数时,就可以将恶意系统命令拼接到正常命令中,从而造成命令执行攻击。
命令执行漏洞的危害
继承Web服务程序的权限去执行系统命令或读/写文件,反弹shell,控制整个网站甚至控制服务器,进一步实现内网渗透
执行系统命令的函数
在PHP开发语言中有system()、exec()、shell_exec()、eval()、passthru()等函数可以执行系统命令。在Java开发语言中可以执行系统命令的函数有Runtime.getRuntime.exec和ProcessBuilder.start,其中,Runtime.getRuntime.exec是在Java1.5之前提供的,Java1.5之后则提供了ProcessBuilder类来构建进程可以通过”;“进行命令的拼接,将ping和id两个命令给合在一起
XXE漏洞的简介
当应用程序在解析XML输入时,在没有禁止外部实体的加载而导致加载了外部文件及代码时,就会造成XXE漏洞。
XXE漏洞的危害
任意文件读取、内网探测、攻击内网站点、命令执行、DOS攻击等
SSRF漏洞定义
SSRF漏洞通常出现在社交分享、远程图片加载或下载、图片或文章收藏、转码、通过网址在线翻译、网站采集、从远程服务器请求资源等功能点处
SSRF漏洞的危害
(1)获取内网主机、端口和banner信息。
(2)对内网的应用程序进行攻击,例如Redis、jboss等。
(3)利用file协议读取文件。
(4)可以攻击内网程序造成溢出。
SSRF漏洞URL中常出现url、f、file、page等参数。SSRF会使用HTTP请求远程地址,因此代码审计时我们要特别留意能够发起HTTP请求的类及函数。
Java反序列化漏洞
Java是面向对象编程的,当你想把某个对象存储起来以便长期使用时,便需要用到Java反序列化。最常见的反序列化情况便是服务器的SESSION,当有大量用户并发访问,就有可能出现庞大数量的SESSION对象,内存显然不够用,于是Web容器便会将SESSION先序列化到硬盘中,等需要使用时,再将保存在硬盘中的对象还原到内存中,这个存储再拿出来的过程便是序列化和反序列化的过程
序列化和反序列化
一般来说,把对象转换为字节序列的过程称为对象的序列化,把字节序列恢复为对象的过程称为对象的反序列化。
Java反序列化漏洞的危害
Java反序列化漏洞一般有以下几种危害
任意代码执行,获取SHELL,对服务器进行破坏
SSTI漏洞的危害
任意代码执行,获取SHELL,破坏服务器完整性等
在Java中常见的模板引擎
XMLTemplate、Velocity、CommonTemplate、FreeMarker、Smarty4j、TemplateEngine等
Spring MVC框架
(1)模型:一个或多个JavaBean对象,用于存储数据(实体模型由JavaBean类创建)和处理业务逻辑(业务模型由一般的Java类创建)。
(2)视图:一个或多个JSP页面,向控制器提交数据和为模型提供数据显示,JSP页面主要使用HTML标记和JavaBean标记来显示数据。
(3)控制器:一个或多个Servlet对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的JavaBean,并将处理结果存放到实体模型JavaBean中,输出给视图显示。
JAVA代码审计实战
在实际项目中可以使用奇安信代码卫士或者fortify这类自动审计工具来进行快速审计。当然这种方法审计出来的漏洞并不是很全且存在极高的误报率,因此最好是将其作为一个辅助工具用来快速地发现某些明显的漏洞,而其他的漏洞还是需要自己对源码进行通读或回溯功能点的方法来发现


http://lihuaxi.xjx100.cn/news/568846.html

相关文章

面试官:请实现Javascript发布-订阅模式

简介 发布-订阅模式又叫做观察者模式,他定义了一种一对多的依赖关系,即当一个对象的状态发生改变的时候,所有依赖他的对象都会得到通知。 回忆曾经 作为一名前端开发人员,给DOM节点绑定事件可是再频繁不过的事情。比如如下代码…

Oracle_4_分区、分区索引

数据切分:1、垂直:不同的表存放在不同的地方。2、水平:按照规则将同一个表中的数据分开存放。一、range分区(范围分区) 创建表的时候,可以按照规则把一个表分成几个部分,分开存放。 结构:create table 表名(字段信息)--选定字段进行分区partition by range(字段名)(--…

P2257 YY的GCD

求 \[\begin{aligned} & \sum^{n}_{i = 1} \sum^{m}_{j = 1} [ gcd(i, j) \in prime]\\ & \sum^{}_{k \in prime} \sum^{n}_{i = 1} \sum^{m}_{j = 1}[ gcd(i, j) = k]\\ \end{aligned} \]设 \[\begin{aligned} f(s) & = \sum^{n}_{i = 1} \sum^{m}_{j = 1}[ gcd(i…

webdav服务/ddns/域名/ssl证书设置

1.webdav服务 1.1.Windows iis自带的webdav组件 默认未启用,可以启用进行设置,使用了一下,在使用浏览器或Windows资源管理器内右键添加网络位置作为客户端时比较好用,但是当在移动端使用cx文件管理器app时,身份验证出现问题. 参考文章: 1.2. WebDAV Server (推荐) 项目地址:Git…

基于多保真方法来估计方差和全局敏感度指数分析(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 此代码实现了多保真方法来估计方差和全局敏感度指数。当模型具有不确定的输入时,模型输出也是不确定的。基于方差的…

网络爬虫入门到实战

简介 数据采集文章 开始 入门程序 环境准备 pip3 install beautifulsoup4 基本操作 from urllib.request import urlopen from bs4 import BeautifulSouphtml urlopen("http://www.baidu.com") # print(html.read()) (打印html完整内容) bsObj BeautifulSou…

【Vue2+Element ui通用后台】面包屑和tag功能

文章目录面包屑tag面包屑 Element ui 面包屑:显示当前页面的路径,快速返回之前的任意页面,完成效果如下: 我们之前把头部的代码封装到了 CommonHeader.vue 中,面包屑部分直接写死了一个首页,我们可以把官…

将powershell、cmd和vscode终端的编码永久修改成utf-8

powershell修改方法 1、以管理员身份打开powershe New-Item $PROFILE -ItemType File -Force 2、打开C盘,找到我的文档中的WindowsPowerShell文件夹 3、编辑这个ps1文件(默认是空的),加上以下代码 $OutputEncoding [console…