
Cross-Site Scripting(跨站脚本攻击),简称XSS,是一种代码注入攻击。攻击者通过在目标网站上注入恶意脚本,使之在用户的浏览器上运行。利用这些恶意脚本,攻击者可获取用户的敏感信息如Cookie、SessionID等,进而危害数据安全。
xss攻击的本质是将数据注入到静态代码中(如html和js等),当浏览器渲染html时就会触发注入的脚本引发xss攻击。
xss攻击产生的原因是对用户的输入过滤不严格,在能够同用户实现交互的地方更容易发现xss漏洞。
如何注入xss攻击 在HTML内嵌的文本中,恶意内容以script标签形成注入在内联的JavaScript中,拼接的数据突破了原本的限制(字符串,变量,方法名)等在标签属性中,恶意内容包含引号,从而突破属性值的限制,注入其他属性或者标签在标签的 href、src 等属性中,包含 javascript: (伪协议)等可执行代码在 onload、onerror、onclick 等事件中,注入不受控制代码总之,任何可以输入的地方都可能引起xss攻击 xss攻击的分类
根据攻击来源xss攻击可以分为三类
反射性xss 什么是反射性xss反射型XXS是一种非持久性的攻击,它指的是恶意攻击者往Web页面里插入恶意代码,当用户浏览该页时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的目的。这里插入的恶意代码并没有保存在目标网站,需要引诱用户点击一个链接到目标网站的恶意链接来实施攻击。
反射性xss攻击的步骤 攻击者构造特殊的URL(包含了恶意代码)用户打开带有恶意代码的URL之后,服务端将恶意代码取出来,拼接在html中返回给浏览器用户浏览器收到响应后解析执行,恶意代码也被执行恶意代码窃取用户的信息发到攻击者网站或者冒充用户做攻击者的目标行为 存储性xss 什么是存储性xss攻击存储型xss是一种持久性攻击,存储型xss就是攻击者的恶意代码会保存到服务器中,比如留言板评论区这种公共区域,当其他用户访问存储有恶意代码的页面时就会触发恶意代码。存储型和反射性xss的区别在于,反射性xss需要用户点击恶意链接才能执行代码,而存储型xss是不需要访问合法网站以外的任何链接的。
存储性xss攻击的步骤 攻击者将恶意代码提交到目标网站的数据库用户打开目标网站,服务端将恶意代码从数据库中取出拼接在html中返回给浏览器用户浏览器收到响应后解析执行,恶意代码也被执行恶意代码窃取用户的信息发到攻击者网站或者冒充用户做攻击者的目标行为 DOM型xss 什么是DOM型攻击务器端经常使用document.boby.innerHtml等函数动态生成html页面,如果这些函数在引用某些变量时没有进行过滤或检查,就会产生DOM型的XSS。DOM型XSS可能是存储型,也有可能是反射型。
DOM型攻击的步骤 攻击者构造出特殊的 URL,其中包含恶意代码。用户打开含有恶意代码的目标网站用户浏览器接收到响应后解析执行,前端 JavaScript 取出 URL 中的恶意代码并执行恶意代码窃取用户的信息发到攻击者网站或者冒充用户做攻击者的目标行为DOM型xss攻击和反射性xss攻击、存储性攻击的区别是:DOM型xss攻击属于前端自身的安全漏洞,其他两种属于是服务端安全漏洞。
三种xss攻击的简单对比| 类型 | 存储区 | 插入点 | 安全漏洞类型 |
|---|---|---|---|
| 反射型 | URL | HTML | 后端漏洞 |
| 存储性 | 后端数据库 | HTML | 后端漏洞 |
| DOM型 | 后端数据库;前端存储;URL | JavaScript | 前端漏洞 |
Cross-site request forgery(跨站请求伪造),是一种挟持用户在当前已登陆的Web应用程序上执行非本意的 *** 作的攻击方法。如:攻击者诱导受害者进入第三方网站,在第三方网站中,向被攻击网站发送跨站请求。利用受害者在被攻击网站已经获取的注册凭证,绕过后台的用户验证,达到冒充用户对被攻击的网站执行某项 *** 作的目的。
CSRF攻击的原理 用户打开浏览器,访问安全网站A,输入用户名和密码请求登录网站A在用户信息通过验证后,网站A产生Cookie信息并返回给浏览器,此时用户登录A成功,可以正常发送请求到网站A。用户没有退出A之前,在同一个浏览器中,打开一个Tab页面来访问网站B网站B接收到用户的请求后,返回一些攻击代码,并且发出一个请求要求访问第三方站点A浏览器在接收到这些攻击性代码后,根据网站B的请求,在用户不知情的情况下携带Cookie信息,向网站A发出请求。网站A并不知道该请求其实是由B发出的,所以会根据用户C的cookie信息以C的权限处理该请求,导致来自网站B的恶意代码被执行。具体流程看下图:
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)