最近打算审一审

审计时可以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代码审计系列(四)相关推荐

  1. java中的jpa_JPA教程–在Java SE环境中设置JPA

    java中的jpa JPA代表Java Persistence API,它基本上是一个规范,描述了一种将数据持久存储到持久存储(通常是数据库)中的方法. 我们可以将其视为类似于Hibernate之类的 ...

  2. Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位

    Java 位运算理解 Java中的位移运算整理 Java右移n位 Java左移n位 一.概述 1.在浏览一篇文章时,看到一个介绍 ,使用位移操作替代乘除法 ,若位移多位该怎么计算呢?  二.代码理解 ...

  3. Java中的字符集编码入门Java中的增补字符

    转载自:http://jiangzhengjun.iteye.com/blog/512083 Java中的字符集编码入门Java中的增补字符 博客分类: 字符集编码 Java Java号称对Unico ...

  4. java中super用来定义父类,Java中super的几种用法及与this的区别

    综观目前的 Web 应用,多数应用都具备任务调度的功能.本文由浅入深介绍了几种任务调度的 Java 实现方法,包括 Timer,Scheduler, Quartz 以及 JCron Tab,并对其优缺 ...

  5. groovy 使用java类_在java中使用groovy怎么搞 (java and groovy)

    什么是groovy? 一种基于Java虚拟机的动态语言,可以和java无缝集成,正是这个特性,很多时候把二者同时使用,把groovy作为java的有效补充.对于Java程序员来说,学习成本几乎为零.同 ...

  6. java中怎样克隆,如何在Java中克隆列表?

    要克隆Java中的列表,最简单的方法是使用ArrayList.clone()方法- 示例import java.util.ArrayList; public class Demo { public s ...

  7. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义

    在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...

  8. java中char占的二进制,java数据类型与二进制详细介绍

    java数据类型与二进制详细介绍 在java中 Int 类型的变量占 4个字节 Long 类型的变量占8个字节 一个程序就是一个世界,变量是这个程序的基本单位. Java基本数据类型 1. 整数类型 ...

  9. java中的类加载器有,Java自定义的类加载器,java自定义加载,在java中类加载器有以...

    Java自定义的类加载器,java自定义加载,在java中类加载器有以 在java中类加载器有以下几种java虚拟机自带的加载器 1)根类加载器(Bootstrap,c++实现)2)扩展类加载器(Ex ...

最新文章

  1. java中setid(),Java Process.setId方法代碼示例
  2. pythonos pathjson_python进阶05 常用问题库(1)json os os.path模块
  3. 定义const变量是不可以赋值_JavaScript的声明方法和作用范围,常见的结构赋值类型和使用场景...
  4. 控制cpu_I/O控制器及控制方式,了解一下
  5. 搞笑日常:有位程序员的老爸是个什么感觉?过程你绝对意想不到!
  6. 海思3559AV100上运行自己训练的yolov3
  7. CFA在线计算机,注意!CFA考场上只能携带这种计算机!
  8. python集合_Python集
  9. 为方便储户,某银行拟开发计算机储蓄系统。
  10. 想网站与目标站点同步更新?利用采集侠轻松实现
  11. 数据分析引擎之Kylin学习笔记
  12. 程序员必备之电脑护眼模式设置
  13. linux 脚本 过滤 词,linux学习之shell脚本 - 文本过滤
  14. oracle 乘法表,ORACLE SQl——9*9 乘法表的实现方法
  15. MMS-MTK-Obigo03c
  16. WPF DataGrid 值转换 conver使用
  17. secureCRT 设置背景色等操作
  18. 移动互联时代的地方网站转型
  19. 搭建商城系统应该注意什么问题?
  20. 百度高级搜(使用技巧)

热门文章

  1. VIP客户服务系统设计(外传)——面对变化的“世界”
  2. does not esixt in the current content error
  3. Linux 命令(115)—— rev 命令
  4. MySQL事务(脏读、不可重复读、幻读)
  5. 论有一个服务器后可以干什么
  6. 【ActiveReports 大数据分析报告】用数据分析的手段告诉你,复联4有多火爆?
  7. 6.QT-简易计算器实现(详解)
  8. 移动互联网消息推送原理:长连接+心跳机制(MQTT协议)
  9. SQL优化之存储过程强制编译
  10. 【Java】使用URL类访问互联网资源