| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 网络协议 -> xss漏洞知识总结 -> 正文阅读 |
|
[网络协议]xss漏洞知识总结 |
漏洞原理跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。 未对用户的输入进行处理,浏览器将用户输入的内容当作脚本执行。恶意攻击者往Web页面里插入恶意JS代码,当用户浏览该页之时,嵌入其中Web里面的JS代码会被执行,从而达到恶意的特殊目的。是一种针对用户浏览器的攻击。 漏洞分类Xss主要分为三种类型: (1)反射型反射型xss又称非持久性xss,需要用户点击带有特定参数的链接。 攻击者通过邮件等形式将包含xss代码的链接发送给用户,当用户点击时,服务器接受该用户的请求并进行处理,然后把带有xss的代码发送给用户。未经验证和转义的用户输入,直接作为HTML输出的一部分。用户浏览器解析执行代码,触发xss漏洞。 Xss攻击可以让攻击者在受害者的浏览器中执行任意的HTML和JavaScript。 反射型xss攻击流程: ?使用: 页面会返回输入框所输入的内容 输入在服务器端处理后,已经成为HTML页面中的一部分。 ?当输入的内容为脚本时
?则输入的内容会被当作脚本执行 ? 通过xss实现点击跳转
? (2)存储型存储型xss又称持久型xss,攻击脚本存储在目标服务器的数据库中。 存储型xss是指应用程序通过web请求向服务端提交了恶意数据,在未检验数据是否存在xss代码的情况下将其存入数据库。当下一次从数据库中获取该数据时,程序也未对其进行过滤,页面再次执行xss代码。 存储型xss可以持续攻击用户,具有更强的隐蔽性 存储型xss出现的位置:留言板、评论区、用户头像、个性签名、博客等。 存储型xss攻击流程: ?当留言板块被插入恶意xss代码时,内容会被存储到数据库中。 后续每次访问本页面都会受到影响。 (3)DOM型DOM(Document Object Model) DOM模型用一个逻辑树来表示一个文档,每个分支的终点都是一个节点,每个节点都包含着对象。DOM的方法让你可以用特定方式操作这个树,用这些方法你可以改变文档结构、样式或内容。 DOM型XSS DOM型XSS其实时一种特殊类型的反射型XSS,通过JS操作DOM数动态地输出数据到页面,而不依赖于将数据提交给服务器端,它是基于DOM文档对象模型的一种漏洞。DOM型XSS数据不经过服务器,所以不受WAF影响。 利用: 在script里面创建一个Element的对象,然后对Element的对象的src设置一个提前准备好的服务器上。利用document.cookie获取到cookie,通过escape转义为一个可打印字符。 漏洞危害1,盗取cookie通过xss盗取用户cookie
?上面只是通过alert将用户的cookie弹出,还可以通过构造代码将cookie直接发送到自己的服务器。然后通过盗取到的cookie伪造用户身份,越权登录。 首先在服务器创建用于接收cookie的php文件,将接收到的值写入cookie.txt文本中。
当执行次脚本后,用户客户端就会以自己的cookie为参数,跳转至指定的链接。服务端接收后就会生cookie.txt文件。 ?还可以通过nc监听指定端口,然后构造代码将数据发往指定端口。
?2,会话劫持利用 Cookie 会话劫持 打开浏览器,选择console使用下面代码一键设置cookie
访问网站时需要登录用户 通过上述方法将盗取到的cookie添加到浏览器。 ?成功获得用户权限 ?可在存储选项卡查看网站的cookie值。 ?3,篡改网页链接在存在xss漏洞的地方插入如下代码:
?当窗口加载时,使用for循环遍历所有的a标签,将a标签中的url替换指定的url。 利用带有XSS漏洞的页面,将所有a标签的url替换成指向流量的url,使得所有用户在这个网页点击的任何链接都跳转到该流量站点,使得站点的流量增多。 4,盗取用户信息克隆网站登陆页面,利用存储XSS设置跳转代码,如果用户访问就会跳转到克隆网站的登陆页面,用户登陆的账号和密码被记录并发往黑客服务器。 使用kali系统自带的SETookit工具克隆网站: ? ????????1,setookit (打开setookit工具) ? ????????2,选择Social-Engineering Attacks ? ????????3,选择Website Attack Vectors ? ????????4,选择Credential Harvester Attack Method ? ????????5,选择Site Cloner,输入要克隆的网址 利用xss漏洞在页面中插入跳转到克隆网站的代码:
?当访问到此页面时,会自动跳转到攻击者指定页面。 ?如果用户在此页面输入了账户密码并提交,攻击者后台就会接收到用户信息。 绕过方法1,基于规则的绕过?大小写绕过: ? HTML对标签大小写不敏感,可以利用大小写混用绕过 ? 例如:
双写绕过: ? 有些情况的规则会将黑名单标签替换为空,可以利用这一点构造标签 ? 例如:
? 同理某些注释符在规则中也会替换为空,这时候可以利用它构造payload ? 例如:
开口标签: ? 在某些特殊环境,由于html代码补全机制,可以故意不闭合标签绕过黑名单检测 ? 例如:
空格回车TAB: ? 例如:
2,基于其他标签和事件?其他非黑名单标签和事件: <img>
<input>
<details>
<svg>
<iframe>
<body>
3,编码绕过Base64编码:
HTML编码:?
HTML文档解码顺序:HTML解析,URL解析和JavaScript解析(Unicode)。 BeEF工具BeEF,全称The Browser Exploitation Framework,是一款针对浏览器的XSS利用工具。 1,浏览器信息收集可收集: ? 浏览器名称版本 ? 浏览器用户版本 ? 插件(包括Java,ActiveX,VBS,Flash……) ? 窗口大小 (1)自动默认收集: (2)插件收集信息
2,系统信息收集可收集: ? 安装的软件(适用于IE下,Detect Software模块) ? 注册表键值(适用于IE下,此时会弹出提示消息) ? 内网IP(Java模块得到授权) ? 系统详情(通过JavaApplet获取系统版本、Java VM details、NIC names and IP、处理器、内存、屏幕显示模式)? ? 定位(通过Google maps) ? 剪贴板信息(会弹出提示消息) 3,用户行为可收集: ? 用户是否访问过某URL、domain ? 是否登录特定网站账号 ? 是否使用TOR 4,钓鱼提交登录信息 ? 在网页弹出诱骗消息需要用户输入登录和密码 ?当用户输入信息后,自动获取,如图 ?5,网络扫描获取内网ip 通过WebRTC获取内网IP 防范方法1,过滤和转义针对XSS的防御 用用户的输入进行合理验证,对特殊字符如(<、>、’、”等)以及<script>、javascript等进行过滤。 采用OWASP ESAPI对数据输出HTML上下文中不同位置(HTML标签、HTML属性、JavaScript脚本、CSS、URL)进行恰当的输出编码。 2,设置HttpOnly设置HttpOnly属性,避免攻击者利用XSS漏洞进行Cookie劫持攻击。
3,Xss的检测
它能够检测到存在于 HTML 属性、HTML 文字内容、HTML 注释、跳转链接、内联 JavaScript 字符串、内联 CSS 样式表等多种上下文中的 XSS 漏洞,也能检测 eval()、setTimeout()、setInterval()、Function()、innerHTML、document.write() 等 DOM 型 XSS 漏洞,并且能绕过一些 XSS 过滤器。 只要在网站的各输入框中提交这个字符串,或者把它拼接到 URL 参数上,就可以进行检测了。 |
|
网络协议 最新文章 |
使用Easyswoole 搭建简单的Websoket服务 |
常见的数据通信方式有哪些? |
Openssl 1024bit RSA算法---公私钥获取和处 |
HTTPS协议的密钥交换流程 |
《小白WEB安全入门》03. 漏洞篇 |
HttpRunner4.x 安装与使用 |
2021-07-04 |
手写RPC学习笔记 |
K8S高可用版本部署 |
mySQL计算IP地址范围 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/26 3:50:11- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |