jsp基本语法
JSP指的是Java Server Pages,它是SUN公司在1996年6月发布的用于开发动态Web应用的一项技术。JSP是基于Java Servlet的Web开发技术,由于其所具有的简单易学和跨平台等的特性,使其在各种动态Web程序的设计语言中脱颖而出,它具有一套完整的语法规范,目前已经成为Web开发中的主流选择。
在传统的HTML页面文件中嵌入脚本语言和JSP标签就构成了一个JSP页面文件
1.jsp注释
JSP注释有两种,一种是可以在客户端显示的注释,称为HTML注释。
表示形式: <!-- 注释内容 -->
一种是发送到服务器端,在客户端不能显示的注释,称为JSP注释。
表示形式: <%--注释内容--%>
2.jsp指令
JSP指令有3类,分别是:
page指令
include指令
taglib指令
1、 page指令称为页面指令,用来定义JSP页面的全局属性,该配置会作用于整个JSP页面。page指令用来指定所使用的脚本语言、导入指定的类及软件包等。
2、include指令是文件加载指令,用于在JSP文件中插入一个包含文本或代码的文件。它把文件插入后与原来的JSP文件合并成一个新的JSP页面。还需要注意的是,如果被插入的文件发生了变化,则包含这个文件的JSP文件需要被重新编译。
3、taglib指令用来引用标签库并设置标签库的前缀。这个指令允许JSP页面使用用户自定义的标签,它也可以为标签库命名,标签在这个库中定义。
3.jsp脚本元素
脚本元素是JSP中使用最频繁的元素,通过JSP脚本可以将Java代码嵌入到HTML页面中,所有可执行的Java代码,都可以通过JSP脚本来实现。
xss-labs前四关
level1
第一关无任何过滤直接插入js代码
name=<script>alert('XSS')</script>
level2
构造语句,闭合input标签
keyword="><script>alert("XSS")</script>
level3
可以通过js事件来进行绕过
' οnfοcus=javascript:alert('xss')//
level4
使用str_replace()
对尖括号
进行了过滤,而且对单引号'
做了防御,所以,我们直接模仿上一题,使用HTML事件,构造payload:
"onclick="alert(1)