java中1%3c%3c2_从零开始java代码审计系列(四)
最近打算审一审
审计时可以FindBugs
还是有一些帮助的。
后台任意
漏洞路径 /ofcms/ofcms-admin/
public vo
这里可以看到没有任何限制,直接写入
POST /ofcms_admin_war/admin/cms/template/save.
为什么要写到static
/**
* 请求后缀名处理
*
* @author OF
* @date 2017年11月24日
*/
public class
可以看到这里将 jsp、html、json 的后缀都为空了,但是如果是 /static 目录就直接 return 了,那么把shell写到这个目录下即可。
CSRF打助攻
显然没有
后台任意文件上传漏洞(鸡肋)
@Clear
public void upload() {
try {
UploadFile file = this.getFile("file", "image");
file.getFile().createNewFile();
Map data = new
在 file.getFile().createNewFile(); ,可以跟到
private boolean isSafeFile(UploadFile uploadFile) {
String fileName = uploadFile.getFileName().trim().toLowerCase();
if (!fileName.endsWith(".jsp") && !fileName.endsWith(".jspx")) {
return true;
} else {
uploadFile.getFile().delete();
return false;
}
}
限制了是否以指定后缀结束,但是这里可以利用
但是我说这个洞为什么鸡肋呢,因为没办法跨目录上传,上传到image目录下是利用不了的,原因我上面说了,所以说它鸡肋。
通过看FreeMarker ,这个应该是java中比较经典的模板注入了,来看文章 http://drops.xmd5.com/static/drops/tips-8292.html
使用payload
${ ex("id") }
java中1%3c%3c2_从零开始java代码审计系列(四)相关推荐
- java中的jpa_JPA教程–在Java SE环境中设置JPA
java中的jpa JPA代表Java Persistence API,它基本上是一个规范,描述了一种将数据持久存储到持久存储(通常是数据库)中的方法. 我们可以将其视为类似于Hibernate之类的 ...
- Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位
Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位 一.概述 1.在浏览一篇文章时,看到一个介绍 ,使用位移操作替代乘除法 ,若位移多位该怎么计算呢? 二.代码理解 ...
- Java中的字符集编码入门Java中的增补字符
转载自:http://jiangzhengjun.iteye.com/blog/512083 Java中的字符集编码入门Java中的增补字符 博客分类: 字符集编码 Java Java号称对Unico ...
- java中super用来定义父类,Java中super的几种用法及与this的区别
综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...
- groovy 使用java类_在java中使用groovy怎么搞 (java and groovy)
什么是groovy? 一种基于Java虚拟机的动态语言,可以和java无缝集成,正是这个特性,很多时候把二者同时使用,把groovy作为java的有效补充.对于Java程序员来说,学习成本几乎为零.同 ...
- java中怎样克隆,如何在Java中克隆列表?
要克隆Java中的列表,最简单的方法是使用ArrayList.clone()方法- 示例import java.util.ArrayList; public class Demo { public s ...
- JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义
在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...
- java中char占的二进制,java数据类型与二进制详细介绍
java数据类型与二进制详细介绍 在java中 Int 类型的变量占 4个字节 Long 类型的变量占8个字节 一个程序就是一个世界,变量是这个程序的基本单位. Java基本数据类型 1. 整数类型 ...
- java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...
Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...
最新文章
- java中setid(),Java Process.setId方法代碼示例
- pythonos pathjson_python进阶05 常用问题库(1)json os os.path模块
- 定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...
- 控制cpu_I/O控制器及控制方式,了解一下
- 搞笑日常:有位程序员的老爸是个什么感觉?过程你绝对意想不到!
- 海思3559AV100上运行自己训练的yolov3
- CFA在线计算机,注意!CFA考场上只能携带这种计算机!
- python集合_Python集
- 为方便储户,某银行拟开发计算机储蓄系统。
- 想网站与目标站点同步更新?利用采集侠轻松实现
- 数据分析引擎之Kylin学习笔记
- 程序员必备之电脑护眼模式设置
- linux 脚本 过滤 词,linux学习之shell脚本 - 文本过滤
- oracle 乘法表,ORACLE SQl——9*9 乘法表的实现方法
- MMS-MTK-Obigo03c
- WPF DataGrid 值转换 conver使用
- secureCRT 设置背景色等操作
- 移动互联时代的地方网站转型
- 搭建商城系统应该注意什么问题?
- 百度高级搜(使用技巧)
热门文章
- VIP客户服务系统设计(外传)——面对变化的“世界”
- does not esixt in the current content error
- Linux 命令(115)—— rev 命令
- MySQL事务(脏读、不可重复读、幻读)
- 论有一个服务器后可以干什么
- 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?
- 6.QT-简易计算器实现(详解)
- 移动互联网消息推送原理:长连接+心跳机制(MQTT协议)
- SQL优化之存储过程强制编译
- 【Java】使用URL类访问互联网资源