跨站脚本攻击xss学习
0、认识跨站脚本
举一个跨站脚本的简单例子。
假设一个页面将用户输入的参数直接显示到页面之中。(比如有如下代码)

在实际的浏览器中,在param中提交的参数正常会展示到页面之中。比如输入下面的URL:

然后发现浏览器页面的提供会变成这样:

此时如果提交下面的URL:

会发现alert被执行了

1、跨站脚本分类
跨站脚本攻击分为3类,反射型、存储型和DOM Based XSS。
1、反射型xss。浏览器执行一个不可信的脚本,并获得服务器的响应。通常黑客需要引诱用户点击恶意链接来进行触发。
2、存储型xss。比如在服务器的博客文章中有恶意脚本,那么每个访问该博客的浏览器都会执行这段而已代码。
3、修改页面的DOM节点形成的xss。(实际上也是浏览器执行不可信的脚本,但还是单独被列出为一类)
2、XSS Payload
XSS攻击成功之后,攻击者能够对当前浏览器的页面植入恶意脚本,通过恶意脚本,控制用户浏览器。这些用来完成各种具体功能的恶意脚本,被成为XSS Payload。
XSS Payload实际上就是javaScript脚本(还可以是Flash或其他富客户端的脚本)。所以javascript能做到的事情,XSS Payload都能够做到。
2.1 XSS Payload获取Cookie(通过URL的param远程加载一个脚本,脚本中加载一个图片,将cookie放入图片路径)
从开头的例子看到,通过URL的方式能够使一个脚本执行。
通过如下方式去加载一个远程脚本:

然后在evil.js中写入获取Cookie的代码(这段代码本身是加载一个图片,但是通过请求一个图片,将cookie放在请求的URL中):


即使最后该图片路径不存在,服务器也会记录下这次访问的URL,也就是能获取到cookie了。
获取cookie后,使用用户的cookie就可以伪造用户登录,但是很容易被防范。
2.2 强大的XSS Payload
模拟用户的行为:
1、构建form表单
2、通过XMLHttpRequest发送消息
比如通过网络抓包来获取某项行为的URL,然后模拟用户发送该URL
XSS钓鱼:
伪造一个假的登录框或是页面。
识别用户浏览器:
1、读取浏览器的UserAgent(可以伪造)
2、根据不同浏览器各自的独特功能,识别浏览器独有的对象
识别用户安装的软件:
1、activex的classid
2、falsh的system.capabilities对象(软件的专属对象)
ccs访问过的网站颜色不同会造成信息泄漏
获取真实IP:
javascript没有直接接口,需要使用其他软件完成,比如JRE
2.3 XSS攻击平台
Attack API
BeEF
XSS-Proxy
2.4 XSS Worm
2005地一个蠕虫病毒
2007年百度空间蠕虫病毒
2.5 调试javascript
firebug
IE8 Developer Tools
Fiddler
HttpWatch
2.6 XSS 构造技巧
3、XSS防御
HttpOnly:在cookie设置HttpOnly属性,可以让javascript读取不到cookie
输入检查:比如排查有没有像'<'或'>'等特殊字符
输出检查:将变量输出成html时可以使用编码或转义字符的方式来防御XSS攻击,将比如将<转义成&lt
跨站脚本攻击xss学习的更多相关文章
- 记录一次网站漏洞修复过程(三):第二轮处理(拦截SQL注入、跨站脚本攻击XSS)
在程序编写的时候采用参数化的SQL语句可以有效的防止SQL注入,但是当程序一旦成型,再去修改大量的数据库执行语句并不是太现实,对网页表单上输入进行校验是易于实现的方法.在webForm 页面中开启校验 ...
- 跨站脚本攻击XSS(二)——session劫持
转载自:http://www.cnblogs.com/dolphinX/p/3403027.html 在跨站脚本攻击XSS中简单介绍了XSS的原理及一个利用XSS盗取存在cookie中用户名和密码的小 ...
- 跨站脚本攻击XSS
跨站脚本攻击(Cross Site Script为了区别于CSS简称为XSS)指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到 ...
- [Web安全之实战] 跨站脚本攻击XSS
Writer:BYSocket(泥沙砖瓦浆木匠) 微博:BYSocket 豆瓣:BYSocket Reprint it anywhere u want. 文章Points: 1. 认识XSS 2. ...
- java防范跨站脚本攻击(XSS)
网络中心提示网站有数目众多的跨站脚本攻击(XSS)漏洞,经过查看代码,认为是JSP中绑定变量是未经处理直接写入的,而且整个项目中这样的做法太多,因为是多年前的,不好一个个更改,参照网上资料,通过加fi ...
- 渗透之路基础 -- 跨站脚本攻击XSS
目录 漏洞原理及防御 XSS 原理分析:输出问题导致js代码被识别执行 XSS 技术分类 Cookie盗取 基于Xss的WebShell箱子的攻击 XSS相关防护过滤及绕过分析(参考链接) 防护: 绕 ...
- 跨站脚本攻击(xss)理解
一 概念 攻击者不直接攻击受害者,而是利用受害者登陆的网站中的漏洞,对受害者进行攻击. 二 危害 由于js本身的限制,并不能直接对用户的电脑造成侵害,但是可以: 1. 获取用户的storage,c ...
- 网站安全系列:跨站脚本攻击XSS
本篇博文主要从概念和应用上介绍XSS,主要内容来源于<白帽子讲web安全> XSS核心本质 XSS实际上是一种HTML注入,用户输入的数据被当成HTML的一部分来执行.防御方法核心是输入检 ...
- 网络安全-跨站脚本攻击XSS(Cross-Site Scripting)
一.XSS攻击简介 作为一种HTML注入攻击,XSS攻击的核心思想就是在HTML页面中注入恶意代码,而XSS采用的注入方式是非常巧妙的. 在XSS攻击中,一般有三个角色参与:攻击者.目标服务器.受害者 ...
随机推荐
- jieba中文分词
jieba中文分词¶ 中文与拉丁语言不同,不是以空格分开每个有意义的词,在我们处理自然语言处理的时候,大部分情况下,词汇是对句子和文章的理解基础.因此需要一个工具去把完整的中文分解成词. ji ...
- tomcat注册服务
转自https://blog.csdn.net/wangmx1993328/article/details/81013715 在 tomcat 的 bin 目录下可以看到一个 service.bat ...
- HBuilder git合作-从Git Hub Clone项目
1.Clone项目 打开”Git Respository"视图,选“Clone a Git Respository" 2.为了能正确pull项目,所有队员都必须做以下配置(其始只是 ...
- ASP.NET Core 2.1对GDPR的支持
欧盟的<通用数据保护条例>(General Data Protection Regulation,以下简称 GDPR)已经于 2018 年 5 月 25 日正式施行.GDPR 涵盖了包括数 ...
- Egret 生成 自带EUI 的微信小游戏 踩坑!
1. 首先,再次被网上一大堆屎一样的资料搞得浪费了我一天时间.各种坑. 2. 本文先讲一种正确的方式,然后再列举坑. 去www.egret.com下载最新的引擎,我的最新版本是5.2.2. 然后就会被 ...
- 解决idea导入项目后依赖报错问题
1.在idea首页 Confige-->setting-->build,execution,deployment-->buildTool-->maven-->work o ...
- 分享我在 vue 项目中关于 api 请求的一些实现及项目框架
本文主要简单分享以下四点 如何使用 axios 如何隔离配置 如何模拟数据 分享自己的项目框架 本文主要目的为以下三点 希望能够帮到一些人 希望能够得到一些建议 奉上一个使用Vue的模板框架 我只是把 ...
- [Swift]LeetCode6. Z字形变换 | ZigZag Conversion
The string "PAYPALISHIRING" is written in a zigzag pattern on a given number of rows like ...
- [Swift]LeetCode818. 赛车 | Race Car
Your car starts at position 0 and speed +1 on an infinite number line. (Your car can go into negati ...
- 白话说java gc垃圾回收
gc是java区别于其他好几门语言(c/c++)的一个代表功能(当然也有很多可以自动管理内存的语言,如所有的脚本语言,你根本不知道内存管理这回事)! 当然,之所以要把c/c++和java相比,是因为j ...