首页 > 其他分享 >跨站脚本攻击XSS(二)

跨站脚本攻击XSS(二)

时间:2023-06-26 12:11:07浏览次数:30  
标签:脚本 XSS 跨站 浏览器 DOM 攻击 用户 页面

一、跨站脚本攻击XSS概述

  XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。

  攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。

二、攻击原理

     HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,<title>与</title>之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。所以,当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。

  XSS攻击有反射型、存储型、DOM型,原理如下:

  • 反射型:需要欺骗用户自己去点击链接才能触发XSS代码,大多数是用来盗取用户的Cookie信息。XSS代码被作为目标地址的url参数发到目标服务器,服务器返回的XSS代码将被浏览器解析并执行。

  •  存储型:将XSS代码通过表单提交到服务器,该代码会被服务器存储,当用户访问到存在XSS代码的页面时,XSS代码将在浏览器端执行。比如黑客在贴吧留言,将XSS代码附加到留言表单提交,当其他用户访问到该留言的页面时,XSS代码会被执行。

DOM型:它是一种特殊反射型,基于DOM的XSS漏洞是指受害者端的网页脚本在修改本地页面DOM环境时未进行合理的处置,而使得攻击脚本被执行。在整个攻击过程中,服务器响应的页面并没有发生变化,引起客户端脚本执行结果差异的原因是对本地DOM的恶意篡改利用。 攻击原理:

  1. 攻击者构建恶意脚本诱导用户点击;
  2. 服务器返回的是正常的页面;
  3. 页面在浏览器渲染时,如果页面中有使用URL参数进行动态Dom操作(通常是document.referer、window.name、window.location、innerHTML、document.write等DOM操作)时,恶意脚本可能会被渲染到DOM中被执行;

三、攻击目的

  • 盗用cookie,获取敏感信息,假冒用户登录系统。
  • 利用植入Flash,通过crossdomain权限设置进一步获取更高权限;或者利用Java等得到类似的操作。
  • 利用iframe、frame、XMLHttpRequest或上述Flash等方式,以被攻击用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
  • 利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
  • 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。

四、防御方法

   XXS恶意代码通常作为参数值(url参数值或者表单值)被提交到目标站点,如果站点没有对这些参数进行校验检查处理,直接返回到浏览器端,浏览器在渲染时可能会将XSS代码执行,代码执行通常是盗取信息推送到黑客的服务器,黑客拿到这些信息进行冒充访问目标网站。

  • 不信任用户提交的任何内容,对所有用户提交内容进行可靠的输入验证,包括对URL、查询关键字、HTTP头、REFER、POST数据等。
  • 用户向服务器上提交的信息要对URL和附带的的HTTP头、POST数据等进行查询,对不是规定格式、长度的内容进行过滤。
  • 实现Session 标记、验证码系统或者HTTP引用头检查,以防功能被第三方网站所执行,对于用户提交信息的中的img等link,检查是否有重定向回本站、不是真的图片等可疑操作。
  • 确认接收的内容被妥善的规范化,仅包含最小的、安全的Tag,去掉任何对远程内容的引用(尤其是样式表和javascript),使用HTTP only的cookie。
  • 避免直接在cookie中泄露用户隐私,通过使cookie和系统IP绑定来降低cookie泄露后的危险。这样攻击者得到的cookie没有实际价值,很难拿来直接进行重放攻击。

标签:脚本,XSS,跨站,浏览器,DOM,攻击,用户,页面
From: https://www.cnblogs.com/zqhIndex/p/17493827.html

相关文章

  • 代码审计——XSS详解
    01漏洞描述跨站脚本入侵(CrossSiteScript)是一种将恶意JavaScript代码插入到其他Web用户页面里执行以达到入侵目的的漏洞。入侵者利用应用程序的动态展示数据功能,在html页面里嵌入恶意代码。当用户浏览该页之时,这些嵌入在html中的恶意代码会被执行,用户浏览器被入侵者控制,从而达到......
  • XSSFClientAnchor 设置偏移无效 setDx setDy
    一、XSSFClientAnchor设置偏移无效setDxsetDy 原因是因为setDx,setDy所需要的x值y值并不是sheet.getColumnWidth(colNo)的值和row.getHeight()的值,而是需要进行一些转换。由于转换系数比较大,所以一般设个几百上千做测试基本是没反应,看起来就像没设置一样。这里先提供一下思......
  • 仙境传说脚本RO:NPC对话| mes/next/close函数用法详解
    仙境传说脚本RO:NPC对话|mes/next/close函数用法详解大家好,我是艾西,今天跟大家讲解下仙境传说mes/next/close函数,在游戏中所有的NPC对话都是用mes函数来创建的。我们先打开官方文档的script_commands.txt文件,搜索*messearch*mesmes"Hello,world!";注意:默认是没有关团或next按......
  • 用Python脚本实现FFmpeg批量转换
    最近需要用FFmpeg从视频文件中提取出音频信息,但是因为文件太多,所以查各种资料写了个Python脚本,实现批量的从视频中提取音频。当然了,脚本框架是通用的,可以通过替换FFmpeg命令实现各种其它操作。一、批量处理Python脚本importosforroot,dirs,filesinos.walk(r"E:\tmp"):......
  • shell脚本双中括号比较数字踩坑
    shell的双中括号中,由于可以直接使用大于和小于号,便自作聪明认为可以直接判断两个数字的大小,直到遇到了以下的情况[core@localhost~]$a=5;b=3;if[[$a>$b]];thenechoaisbigger;elseechobisbigger;fi#结果输出aisbigger,结果是正确的#但是如果两个数字不是......
  • 成功实现脚本检测手机号是否注册imessage的原理
    一、imessages数据检测的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写苹果操作系......
  • 常用脚本1
    Linux运维常用脚本总结原创 小驿 数据与共享 2023-06-1319:30 发表于陕西收录于合集#项目运维9个1.日志切割# nginx 日志分割日志#!/bin/bash --loginshopt -s expand_aliasesdatestr=$(date -d "-1 days" +%Y-%m-%d)echo$datestr;mv/test/log/nginx/acc......
  • 用applescript脚本实现检测手机号码是否注册imessage的原理
    一、检测数据的两种方式:1.人工筛选,将要验证的号码输出到文件中,以逗号分隔。再将文件中的号码粘贴到iMessage客户端的地址栏,iMessage客户端会自动逐个检验该号码是否为iMessage账号,检验速度视网速而定。红色表示不是iMessage账号,蓝色表示iMessage账号。2.编写脚本控制Macos/iphon......
  • linux 中shell脚本实现统计每一个read的长度
     001、[root@PC1test02]#lstest.fastq[root@PC1test02]#cattest.fastq##测试fastq数据@SRR8442980.988/2AAGG+:[email protected]/2AAGGTC+:FFF:,@SRR8442980.1134/1AAAAAAAATATAATTCCA+FFFFFFFFFFFFFFFFFF[root@PC1test02]#awk'{if((NR%......
  • DVWA靶场之XSS通关详解
    原理XSS漏洞是攻击者将恶意代码注入到合法网页中,当用户浏览该页面时,恶意代码会被执行,从而获取用户敏感信息或进行其他攻击。形成原因网站对用户输入数据的过滤不严格或不完备,攻击者可以根据这个漏洞向网站提交恶意代码,然后再将这些代码传播给其他用户,从而造成危害。防御措施......