应用安全 - 代码审计 -Java
Java %c0%ae 安全模式绕过漏洞
原理 在Java端"%c0%ae"解析为"\uC0AE",最后转义为ASCCII低字符-"."。通过这个方法可以绕过目录保护读取包配置文件信息利用:
读取敏感文件被 修复: 下载Java的最新版本:http://www.java.com/zh_CN/
反序列化漏洞
漏洞原因
开发失误
重写ObjectInputStream对象的resolveClass方法中的检测可被绕过。
使用第三方的类进行黑名单控制
当readObject方法书写不当时就会引发漏洞
基础库中隐藏的反序列化漏洞 commons-fileupload 1.3.1 commons-io 2.4 commons-collections 3.1 commons-logging 1.2 commons-beanutils 1.9.2 org.slf4j:slf4j-api 1.7.21 com.mchange:mchange-commons-java 0.2.11 org.apache.commons:commons-collections 4.0 com.mchange:c3p0 0.9.5.2 org.beanshell:bsh 2.0b5 org.codehaus.groovy:groovy 2.3.9 org.springframework:spring-aop 4.1.4.RELEASE POP Gadgets 检测 检测步骤 反序列化操作一般应用在导入模板文件、网络通信、数据传输、日志格式化存储、对象数据落磁盘、或DB存储等业务场景。因此审计过程中重点关注这些功能板块。 "① 通过检索源码中对反序列化函数的调用来静态寻找反序列化的输入点 可以搜索以下函数:ObjectInputStream.readObject ObjectInputStream.readUnshared XMLDecoder.readObject Yaml.load XStream.fromXML ObjectMapper.readValue JSON.parseObject ② 确定了反序列化输入点后,再考察应用的Class Path中是否包含Apache Commons Collections等危险库(ysoserial所支持的其他库亦可)。 ③ 若不包含危险库,则查看一些涉及命令、代码执行的代码区域,防止程序员代码不严谨,导致bug。 ④ 若包含危险库,则使用ysoserial进行攻击复现。防御 禁用可被反序列化的类 'org.apache.commons.collections.functors.InvokerTransformer', 'org.apache.commons.collections.functors.InstantiateTransformer', 'org.apache.commons.collections4.functors.InvokerTransformer', 'org.apache.commons.collections4.functors.InstantiateTransformer', 'org.codehaus.groovy.runtime.ConvertedClosure', 'org.codehaus.groovy.runtime.MethodClosure', 'org.springframework.beans.factory.ObjectFactory', 'xalan.internal.xsltc.trax.TemplatesImpl'通过Hook resolveClass来校验反序列化的类 使用ValidatingObjectInputStream来校验反序列化的类 使用contrast-rO0防御反序列化攻击 使用ObjectInputFilter来校验反序列化的类 禁止JVM执行外部命令Runtime.exec 不建议使用的黑名单
转载于:https://www.cnblogs.com/AtesetEnginner/p/11327499.html
应用安全 - 代码审计 -Java相关推荐
- 【代码审计-JAVA】基于javaweb框架开发的
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
- 【代码审计-JAVA】javaweb代码审计思路
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
- 代码审计[java安全编程]
SQL注入 介绍 注入攻击的本质,是程序把用户输入的数据当做代码执行.这里有两个关键条件,第一是用户能够控制输入:第二是用户输入的数据被拼接到要执行的代码中从而被执行.sql注入漏洞则是程序将用户输入 ...
- 【代码审计-PHP】审计方法、敏感函数、功能点
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
- 【代码审计-PHP】基于Thinkphp框架开发的
前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...
- 2023届【校招】安全面试题和岗位总结(字节、百度、腾讯、美团等大厂)
写在前面 个人强烈感觉面试因人而异,对于简历上有具体项目经历的同学,个人感觉面试官会着重让你介绍自己的项目,包括但不限于介绍一次真实攻防/渗透/挖洞/CTF/代码审计的经历 => 因此对于自己的 ...
- 「干货」橙留香博客导读:专栏系统分类和博客归纳总结
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 0x01 前言 为了更好地帮助博友同学学习作者同学的博客,方 ...
- 干货合辑!Ms08067安全实验室2022年度盘点
又是互相陪伴成长的一年! 2022的年终总结虽迟但到! 过去这一年,伴随着疫情的变化 有人辛苦一点, 有人幸运一点,但我们都到了今天. 让我们一同憧憬美好放开的2023~ 老样子,去年没学完的知识今年 ...
- 个人网络安全学习路线规划(附视频教程)
第一阶段 基础理论学习篇 安全理论知识 安全法律法规 操作系统应用 计算机网络 HTML&JS PHP编程 Python编程 Docker基础知识 第二阶段 web安全知识学习 web安全基础 ...
- 个人网络安全学习路线规划
第一阶段 基础理论学习篇 安全理论知识 安全法律法规 操作系统应用 计算机网络 HTML&JS PHP编程 Python编程 Docker基础知识 第二阶段 web安全知识学习 web安全基础 ...
最新文章
- 研究学者、医师与产业投资者齐聚一堂,将碰撞出何种火花?
- 【数据字典】国标数据字典
- oracle 11g 创建 job 20
- 架构演化:云原生时代开启之系列一演化篇
- JavaScript常用单词整理总结
- 数字图像处理(四)——图像编码技术(一)
- linux下启动应用程序,RedHat Linux 9下启动应用程序
- 作为技术人为什么想创业
- 贪吃蛇程序 php,PHP下利用PHPMailer Web程序【tofacebook.com】 - 贪吃蛇
- 安卓模拟器安装教程_雷电安卓模拟器v4.0.38绿色免安装版——墨涩网
- SD卡--摄像头中扩容卡原理及检测机制
- 智能家居 mysql_智能家居 数据库设计
- linux npm全局安装路径,NPM全局路径的设置及NRM的使用
- 计算机原理形考3,计算机组成原理A形考作业3参考解答
- 右键栏添加管理员获取所有权
- 我最喜欢的一位女明星哦!
- 配置 不使用rsa 密码_了解使用RSA的密码学
- 工作中如何时间管理?
- 河南省济源市谷歌高清卫星地图下载
- 工程伦理--10.1 职业美德
热门文章
- Server.MapPath 出现未将对象引用设置到对象的实例
- 用python重温统计学基础:描述性统计分析
- sqldf包:让SQL语句在R语言中执行
- ADO.NET实体框架Entity Framework模型-基于元数据解析
- SQL Server多表同时查询
- 用request.getParameterMap()获得jsp页面元素的集合出现[Ljava.lang.String;@的问题解决
- python学习之老男孩python全栈第九期_day022作业
- [Web 前端] React Js img 图片显示默认 占位符
- 使用reportlab生成条码
- Mysql DBA 高级运维学习之路-DML语句之insert知识讲解