[TOC]
## 一、 xss基础和分类
### 1 XSS的危害:
攻击者可以使用户在**浏览器中**执行其预定义的**恶意脚本**,其导致的危害**可想而知**,如劫持用户会话,插入**恶意内容**、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。
>XSS 存在的**根本原因**是,对URL中的参数,对用户输入提交给 webserve r的内容,**没有**进行充分的**过滤**。如果我们能够在 web 程序中,对用户提交的URL中的参数,和提交的所有内容,进行**充分的过滤**,将所有的不合法的参数和输入内容过滤掉,那么就**不会导致**“在用户的浏览器中执行**攻击者**自己定制的**脚本**”。
但是,其实**充分而完全的过滤**,实际上是**无法实现**的。因为攻击者有各种各样的神奇的,你完全想象不到的方式来**绕过服务器**端的过滤,最典型的就是对URL和参数进行各种的编码,比如escape,encodeURI, encodeURIComponent, 16进制,10进制,8进制,来**绕过XSS过滤**。
### 2 XSS的原理:
HTML是一种超文本标记语言,通过将一些字符特殊地对待来区别文本和标记,例如,小于符号(<)被看作是HTML标签的开始,之间的字符是页面的标题等等。当动态页面中插入的内容含有这些特殊字符(如<)时,用户浏览器会将其误认为是插入了HTML标签,当这些HTML标签引入了一段JavaScript脚本时,这些脚本程序就将会在用户浏览器中执行。**所以**,**当这些特殊字符不能被动态页面检查或检查出现失误时,就将会产生XSS漏洞。**
总结后为三点。
> **①攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。**
> **②诱使受害者打开受到攻击的服务器URL。**
> **③受害者在Web浏览器中打开URL,恶意脚本执行。**
### 2 xss分类
1. 反射型(非持久):最普遍的类型。用户访问服务器-跨站链接-返回跨站代码。
就是利用get请求,往网页的url中加入特定的参数,欺骗用户执行这个url,后端服务器接收到恶意参数后,给前端用户反应恶意数据
2. 存储型(持久型):最直接的危害类型,跨站代码存储在服务器(数据库)
通过使用网页的提交功能(如留言板),将代码写入到后端文件或数据库中。
别的用户访问页面时,服务器返回的数据中就包含这些恶意代码
3. DOM型:客户端脚本处理逻辑导致的安全问题。
类似反射型,也是构造恶意url参数,但由浏览器直接执行js,可以脱离后端服务器
## 二、XSS的攻击方式:
### 1、常用的XSS攻击手段和目的有:
> **①**盗用cookie,获取敏感信息。
> **②**利用植入 Flash,通过 crossdomain 权限设置进一步获取更高权限;或者利用 Java 等得到类似的操作。
> **③**利用 iframe、frame、XMLHttpRequest 或 Flash 等方式,以(被攻击)用户的身份执行一些管理动作,或执行一些一般的如发微博、加好友、发私信等操作。
> **④**利用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动。
> **⑤**在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DDoS攻击的效果。
> **⑥**xss钓鱼网站,利用JavaScript脚本直接放用户跳转到钓鱼网站
> **⑦**xss获取键盘记录,xss可以实现键盘操作,但是有局限性,不能跨域。
### 2、XSS之存储型
**存储型 XSS 的攻击步骤:**
> **①**攻击者将恶意代码提交到目标网站的数据库中。
> **②**用户打开目标网站时,网站服务端将恶意代码从数据库取出,拼接在 HTML 中返回给浏览器。
> **③**用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
存储型 XSS攻击常见于带有用户保存数据的网站功能,如论坛发帖、商品评论、用户私信等。
储存型XSS会把用户输入的数据“储存”在服务器端。这种XSS具有很强的稳定性。持久的XSS危害性大,容易造成蠕虫,因为每当用户打开页面,查看内容时脚本将自动执行。持久型XSS最大的危害在于可能在一个系统中的用户间互相感染,以致整个系统的用户沦陷。能够造成这种危害的脚本我们称之为XSS蠕虫。
### 3、XSS之反射型
**反射型 XSS 的攻击步骤:**
> **①**攻击者构造出包含恶意代码的 URL,通过各种办法发送给终端用户(**钓鱼**)。
> **②**用户打开带有恶意代码的 URL 时,网站服务端将恶意代码从 URL 中取出,拼接在 HTML 中返回给浏览器。
> **③**用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执行。
反射型 XSS漏洞常见于通过 URL 传递参数的功能,如网站搜索、跳转等。
反射型XSS只是简单的把用户输入的数据“反射”给浏览器,也就是说需要诱使用户“点击”一个恶意链接,才能攻击成功。漏洞产生的原因是攻击者注入的数据反映在响应中。非持久型XSS攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。
### 4、XSS之DOM型
**DOM 型 XSS 的攻击步骤:**
> **①**攻击者构造出特殊的 URL,其中包含恶意代码。
> **②**用户打开带有恶意代码的 URL。
> **③**用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行。
DOM 型 XSS 跟前两种 XSS 的区别:DOM 型 XSS 攻击中,取出和执行恶意代码由浏览器端完成,属于前端 JavaScript 自身的安全漏洞,而其他两种 XSS 都属于服务端的安全漏洞。
DOM通常代表在html、xhtml和xml中的对象,使用DOM可以允许程序和脚本动态的访问和更新文档的内容、结构和样式。它不需要服务器解析响应的直接参与,触发XSS靠的是浏览器端的DOM解析,所以防范DOM型XSS完全就是前端的责任,必须注意!!!。
- src导航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查询
- 备案信息查询
- 信用信息查询
- IP反查站点的站
- 浏览器插件
- 收集子域名信息
- 在线平台
- 工具枚举
- ssl与证书透明度
- DNS历史解析
- DNS域传送漏洞
- C段探测
- JS文件域名&ip探测
- 搜索引擎&情报社区
- google黑客
- 威胁情报
- 钟馗之眼
- 收集相关应用信息
- 微信公众号&微博
- APP收集&反编译
- 收集常用端口信息
- 常见端口&解析&总结
- 扫描工具
- 网络空间引擎搜索
- 浏览器插件
- nmap扫描
- 收集敏感信息
- 源码泄露
- 邮箱信息收集
- 备份文件泄露
- 目录&后台扫描
- 公网网盘
- 历史资产
- 指纹&WAF&CDN识别
- 指纹识别
- CDN识别
- 绕过CDN查找真实IP
- WAF识别
- 漏洞资源和社工
- 漏洞公共资源库
- 社会工程
- 资产梳理
- 各种对渗透有帮助的平台
- 扫描器
- 扫描器对比
- AppScan(IBM)_web和系统
- AWVS_web扫描
- X-Scan_系统扫描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_绿盟_web
- 安恒明鉴
- Nessus_系统
- nexpose_系统
- 启明天镜_web_系统
- SQL注入
- 常用函数
- sql注入步骤
- union注入和information_schema库
- 函数和报错注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解决方案
- Access数据库注入
- MSSQL数据库注入
- MYSQL数据库注入
- 神器SQLmap
- xss跨站脚本攻击
- xss原理和分类
- xss案例和修复
- xss绕过技巧
- xss案例
- 文件上传下载包含
- 常有用文件路径
- 文件上传漏洞
- 文件下载漏洞
- 文件包含漏洞
- upload-labs上传漏洞练习
- XXE、SSRF、CSRF
- SSRF原理基础
- SSRF案例实战
- CSRF原理基础
- CSRF案例及防范
- XXE之XML_DTD基础
- XXE之payload与修复
- XXE结合SSRF
- 远程命令执行与反序列化
- 远程命令和代码执行漏洞
- 反序列化漏洞
- 验证码与暴力破解
- 爆破与验证码原理
- CS架构暴力破解
- BS架构暴力破解
- WEB编辑器漏洞
- 编辑器漏洞基础
- Ewebeditor编辑器
- FCKeditor编辑器
- 其他编辑器
- web中间件漏洞
- 中间件解析漏洞
- Tomcat常见的漏洞总结
- Jboss漏洞利用总结
- Weblogic漏洞利用总结
- WEB具体步骤
- 旁注和越权
- CDN绕过
- 越权与逻辑漏洞
- WEB应用常见其他漏洞
- WEB登陆页面渗透思路
- 获取WEBshell思路
- 社工、钓鱼、apt
- 社工和信息收集
- 域名欺骗
- 钓鱼邮件
- 一些钓鱼用的挂马工具
- 代码审计
- 代码审计工具
- WAF绕过
- WAF基础及云WAF
- 各种WAF绕过方法
- 绕过WAF上传文件
- 系统提权
- windows系统提权
- linux系统提权
- 数据库提权操作系统
- 内网横向渗透
- 内网穿透方式
- 一些内网第三方应用提权
- ARP与DOS
- ARP欺骗
- DOS与DDOS
- 一些DOS工具