思维导图
XSS-跨站脚本攻击
XSS名称由来
人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。因此有人将跨站脚本攻击缩写为XSS。如果你听到有人说 “我发现了一个XSS漏洞”,显然他是在说跨站脚本攻击。
XSS 跨站漏洞产生原理,危害,特点?
什么是xss攻击
恶意攻击者在web页面中会插入一些恶意的script代码。当用户浏览该页面的时候,那么嵌入到web页面中script代码会执行,因此会达到恶意攻击用户的目的。
产生层面
一般都是在前端,JavaScript代码能干什么,执行之后就会达到相应的效果
函数类
比如说php中的脚本的输出函数
常见的输出函数有:print、print_r、echo、printf、sprintf、die、var_dump、var_export
漏洞操作对应层
危害影响
- 盗取各类用户帐号,如机器登录帐号、用户网银帐号、各类管理员帐号
- 控制企业数据,包括读取、篡改、添加、删除企业敏感数据的能力
- 盗窃企业重要的具有商业价值的资料
- 非法转账
- 强制发送电子邮件
- 网站挂马
- 控制受害者机器向其它网站发起攻击
浏览器内核版本
利用这个漏洞需要浏览器版本和内核没有过滤XSS攻击
通常出现位置
文章发表、评论、留言、注册资料、修改资料等地方
XSS 跨站漏洞分类:
反射型(非持久性)
反射性XSS的原理
反射性xss一般指攻击者通过特定的方式来诱惑受害者去访问一个包含恶意代码的URL。当受害者点击恶意链接url的时候,恶意代码会直接在受害者的主机上的浏览器执行。
为什么叫反射型XSS呢?
那是因为这种攻击方式的注入代码是从目标服务器通过错误信息,搜索结果等方式反射回来的。
为什么又叫非持久性XSS呢?
那是因为这种攻击方式只有一次性。
存储型 (持久性)
存储型XSS的原理
主要是将恶意代码上传或存储到服务器中,下次只要受害者浏览包含此恶意代码的页面就会执行恶意代码。
为什么又叫持久性XSS?
那是因为这种攻击方式,是直接把恶意代码存入到数据库中,那么下一次当其他用户访问该文章的时候,服务器会从数据库中读取后然后响应给客户端,那么浏览器就会执行这段脚本。
DOM型
什么是DOM?
文档对象模型(Document Object Model),即大名鼎鼎的DOM。
DOM可以被认为是一种通过将页面元素以对象的树形方式表现,以便由Javascript组织处理的实现方法。
常用的DOM方法
用户可通过 JavaScript (以及其他编程语言)对 HTML DOM 进行访问。所有 HTML 元素被定义为对象,而编程接口则是对象方法和对象属性。
DOM漏洞
基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM XSS漏洞。
#’ οnclick=“alert(2)”>
XSS 常规攻击手法:平台,工具,结合其他等
cookie session
用户凭据:通过凭据可以判断对方身份信息
cookie 存储本地 存活时间较长 小中型
session 会话 存储服务器 存活时间较短 大型
攻击成功的条件:对方有漏洞,浏览器存有cookie,浏览器不进行拦截,不存在带代码过滤和httponly,对方要触发这个漏洞地址
演示案例:
本地环境 XSS 漏洞原理讲解
XSS 漏洞各个分类差异讲解
XSS 漏洞代码绕过靶场使用
XSS 平台及工具简要演示测试
网上随便找的平台
涉及资源:
https://xss8.cc/xss.php?do=login
https://xsshs.cn/xss.php?do=login
https://github.com/do0dl3/xss-labs
http://down.chinaz.com/soft/37581.htm