XSS学习(原理篇)

学习XSS之前,我们很有必要知道XSS到底是什么东西。其英文名是(Cross Site Scripting),意思就是跨站脚本攻击,是黑客常用的攻击手段之一,因为与层叠样式表CSS(Cascading Style Sheets)同名,为了避免混淆,故将其命名为XSS。好了,现在知道了它的名字的由来之后,最重要的就是去了解XSS的实现原理。

XSS实现原理

因为浏览器本身的设计缺陷,浏览器只负责解释执行html+css+javascript代码,并不会检验其安全性。故如果你的服务器对没有对XSS漏洞准备安全的预防措施,都会存在XSS漏洞。下面具体讲一下XSS的攻击过程:

1.用户登陆web应用程序上的网页;.该网页已经被攻击者利用各种手段注入了javascript等脚本代码;
2.服务器对用户的浏览请求做出反应,用户获取攻击者注入过代码的URL;
3.攻击者的javascript代码在浏览者的浏览器上打开;此时可能会伴随用户浏览器向攻击者发送会话令牌,然后攻击者劫持用户会话等现象的发生。

在接触了几天XSS之后,大致有以下特点:

1.XSS即是web应用程序上的计算机安全漏洞,也是黑客常用的攻击手段;对于攻击者而言,需要有很好的计算机语言基础,如JavaScript,HTML5,Ajax,Css和其他脚本语言。
2.XSS产生的主要原因是web浏览器对用户的输入过滤不足。
3.通过将代码注入到网页,虽然对Web服务器没有直接伤害,但它借助网络传播,其危害最终会反馈到服务器。
4.XSS漏洞如此普遍主要是因为web浏览器本身的设计是不安全的,开发人员在交互过程中的设计阶段忽略了XSS防护,加上大部分人还没认识到XSS的危害和错误的认为XSS就只会在浏览器上弹出一个窗口而已,加上触发跨站脚本的方式简单且众多和web2.0的流行和社交功能的迅猛发展,奠定了XSS发展的基础。
5.XSS最重要也是最核心的是利用自己构造好的XSS语句,欺骗web应用程序上的过滤器,实现绕过其安全检测,达成向网页中注入javaScript等脚本信息的目的,从而导致XSS漏洞在互联网上传播。
6.要善于利用工具提高效率,要学会利用各种编码方式提高XSS的攻击性和隐蔽性。例如,unicode,escapes,URL编码,十六进制,八进制等,同时对于特定情境下也可以利用脚本加密技术实现XSS攻击。
7.有时候配合CSRF漏洞,将会由意想不到的效果

同时XSS攻击也有一下弊端

1.XSS攻击无对应软件完成自动化攻击,且有一定几率不成功;
2.是一种被动的攻击手段,对website有http-only,crossdomiar。

下面几个概念需要理解好

1.shellcode——起初是溢出程序和蠕虫程序的核心,注入目标网页中,使用脚本编写好的代码;
2.Exploit——完整编写好的漏洞利用工具;
3.POC(Proof of Concept)——一段证明漏洞存在的程序代码片段;
4.payload——意思为有效载荷,概念验证,即是漏洞验证脚本;是组成Poc和Exp的必要组成部分。

XSS的分类

一.持久型的XSS

攻击方把恶意脚本代码固化在页面中,当其他用户访问到此页面的时候,浏览器会解析并且执行该脚本代码,进而对其他用户进行XSS攻击。最典型的例子是留言板。

二.非持久性(反射型)的XSS

攻击方通过改写网页访问的URL,使其指向攻击方已经准备好的脚本代码。典型的例子是,搜索栏中输入脚本代码。欺骗用户自己去点击链接才能触发XSS代码。

三.DOM型的XSS

攻击方利用javascript来展开攻击,用户请求一个由攻击方提供的经过专门设计的URL,包括嵌入式的javascript,服务器响应用户请求的时候不对URL进行处理,当用户浏览这个相应的时候,脚本得以触发。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
XSS(Cross-site scripting)跨站脚本攻击,是一种常见的Web攻击方式,攻击者通过在网页中注入恶意脚本代码,使得用户在浏览网页时执行这些脚本代码,达到攻击的目的。 XSS攻击的原理是,攻击者在网页中注入恶意脚本代码,当用户访问这个网页时,恶意脚本代码会被执行,从而达到攻击的目的。攻击者可以通过XSS攻击来窃取用户的敏感信息、绕过网站的访问控制、劫持用户会话、篡改网页内容等。 XSS漏洞的挖掘方法一般包括以下几个步骤: 1. 扫描目标网站:使用一些扫描工具,如Burp Suite、OWASP ZAP等,对目标网站进行扫描,找出可能存在的XSS漏洞。 2. 注入恶意脚本代码:在目标网站的输入框中注入恶意脚本代码,如<script>alert("XSS漏洞");</script>,并提交表单。 3. 检查注入的恶意脚本代码是否生效:在提交表单后,在网页中查看是否弹出了XSS漏洞的测试弹窗。如果弹出了,说明注入的恶意脚本代码生效了,存在XSS漏洞。 4. 利用XSS漏洞:如果发现了XSS漏洞,攻击者可以利用这个漏洞来进行攻击,如窃取用户的敏感信息、绕过网站的访问控制、劫持用户会话、篡改网页内容等。 为了防止XSS漏洞的产生,网站开发人员可以采取以下措施: 1. 对用户输入的数据进行过滤和转义,将特殊字符进行转义,如<、>、&等。 2. 在Cookie中设置HttpOnly属性,禁止JavaScript访问Cookie,防止攻击者通过XSS攻击窃取用户的Cookie信息。 3. 在HTTP响应头中设置X-XSS-Protection属性,开启浏览器的XSS保护功能。 4. 对网站进行安全审计,定期检查网站是否存在XSS漏洞。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值