关于xss攻击

Posted 时光不改

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于xss攻击相关的知识,希望对你有一定的参考价值。

关于xss攻击

 

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

 

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

分类:

1、 反射型

2、 存储型

3、 DOM型

 

1、 什么是反射型?

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

 

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

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

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

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

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

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

GitHub - jackmasa/XSS.png: A XSS mind map ;)

基于 DOM 的第三类跨站脚本

 

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

如果弹窗成功,说明存在xss漏洞

"/><script>alert(document.cookie)</script><!--
<script>alert(document.cookie)</script><!--
"onclick="alert(document.cookie)

 

 

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) 对数据进行在编码处理

 

关于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来的更猛烈些吧

 

以上是关于关于xss攻击的主要内容,如果未能解决你的问题,请参考以下文章

关于在线文本编辑器防XSS注入攻击问题

关于XSS漏洞的简介以及分类

XSS基础学习

通过脚本片段绕过XSS防御

网络攻击关于XSS和CSRF

PHP关于PDO防止XSS攻击