首页 > 其他分享 >DOM类型的XSS

DOM类型的XSS

时间:2023-10-11 15:45:03浏览次数:40  
标签:XSS http DOM url var jsp xss 类型 客户端

xss.jsp文件内容如下:

<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
    <title>XSS_DOM</title>
</head>
<body>
<!-- 
本页面三个 DOM 类型的 XSS 漏洞实际执行过程是:
1、客户端发送请求
2、服务端返回
3、客户端执行js
-->
<p id="p">Hello, XSS_DOM</p>
<script>
    var search = document.location.search;
    var params = new URLSearchParams(search);

    // 客户端访问 http://127.0.0.1:9999/xss.jsp?name=1,浏览器发送请求到服务器,服务器响应html,客户端执行js
    var username = params.get('name');
    if (username !== null) {
        document.getElementById("p").innerHTML = 'Hello, ' + username + '!';
    }

    // Location 漏洞
    // http://127.0.0.1:9999/xss.jsp?url=http://www.baidu.com
    // http://127.0.0.1:9999/xss.jsp?url=javascript:alert(1)
    // 客户端访问上面的路径,浏览器发送请求到服务器,服务器响应html,客户端执行js
    var url = params.get('url');
    if (url !== null) {
        document.location = url;
    }

    // Execution 漏洞
    // 客户端访问 http://127.0.0.1:9999/xss.jsp?x=alert(1),浏览器发送请求到服务器,服务器响应html,客户端执行js
    var x = params.get('x');
    eval(x);

</script>
</body>
</html>

 

标签:XSS,http,DOM,url,var,jsp,xss,类型,客户端
From: https://www.cnblogs.com/changrunwei/p/17757345.html

相关文章

  • 第二章:变量和简单的数据类型
    点击查看代码message='"Hellwworld"'#大小写转化print(message.title())print(message.lower())print(message.upper())first_name="ruo"second_name="ye"#f字符串,f是format的简写full_name=f"{first_name}{second_name}"......
  • XSS攻击简析
    什么是XSS攻击?XSS攻击又称为跨站脚本(CrossSiteScripting),XSS的重点不在于跨站点,而是在于脚本的执行。XSS是一种经常出现在Web应用程序中的计算机安全漏洞,是由于Web应用程序对用户的输入过滤不足而产生的,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。XSS攻击有......
  • 群晖Synology存储空间管理器支持的RAID类型
    创建存储池时,先选择RAID类型。不同类型的RAID可提供不同级别的数据保护、存储功能及性能。SynologyNAS目前支持以下类型的RAID:Basic:使用一个硬盘来创建存储池。Basic存储池不提供数据冗余。JBOD*:至少合并两个硬盘来创建存储池。JBOD存储池不提供数据冗余。JBOD存储池......
  • C++ - 数据类型
    2数据类型C++规定在创建一个变量或者常量时,必须要指定出相应的数据类型,否则无法给变量分配内存2.1整型作用:整型变量表示的是==整数类型==的数据C++中能够表示整型的类型有以下几种方式,区别在于所占内存空间不同:数据类型占用空间取值范围short(短整型)2字节(-2^......
  • 调用Android设备中已经安装的软件打开各种类型的指定文件
    最近因项目需求需要在android应用程序中下载一些附件,并打开这些附件,比如音视频视频以及图片这些。开始还好,文件类型不是很多,但是后来需求又加上doc/xls/ppt等,后来又兼容了pdf。这时候已经被需求改的烦不胜烦,觉得有必要针对打开本地文件做一个通用的封装了,判断File的类型,然后用指......
  • 无法将 null 赋予隐式类型化的变量
    仅当局部变量在相同语句中进行声明和初始化时,才能使用var;变量不能初始化为null,也不能初始化为方法组或匿名函数。参考......
  • 群晖安装保姆级教程(各位兄台慢慢看),给新新新手看的(以DS920类型的编译)
    感谢:非常感谢你的大力支持!我们的目标就是让天下没有难做的NAS。教程准备工具,请旺旺联系店主,店主会私信给你网盘下载链接。包含:引导文件、写盘工具等。1、打开写盘工具 2、插入优盘,优盘要求不小于8G,太小的优盘写起来很费劲。 3、在写盘工具界面上点击选择,选择刚刚下载......
  • 一个枚举的通用的方法,根据传入字符串,返回对应枚举类型
    usingSystem;usingSystem.ComponentModel;usingSystem.Reflection;publicstaticclassEnumHelper{//一个泛型方法,接受一个泛型类型T和一个字符串s作为参数publicstaticTGetEnumByDescription<T>(strings)whereT:Enum{//获取T的所有......
  • php教程:变量、数据类型、运算符、数据结构、条件判断、循环、函数和面向对象
    变量<?php$x=5;$y=6;$z=$x+$y;echo$z;?>变量作用域全局变量在所有函数外部定义的变量,拥有全局作用域。要在一个函数中访问一个全局变量,需要使用global关键字。<?php$x=5;$y=10;functionmyTest(){global$x,$y;$y=$x+$y;}myTest();echo$y;//输出1......
  • 解决前端传递Date类型时自动转换为国际时间的问题
    本质原因是前端对象中使用了Data类型的属性字段,在向后端传递时会自动将JSON对象转换为JSON字符串进行传递Date类型的属性在进行转换时会调用自身的toJSON方法,转换为国际时间的字符串表达形式letdate=newDate();console.log(date);console.log(JSON.stringify(date));导......