【web安全】跨站攻击思路整理

简介:

接触跨站攻击一段时间了,有了一些认识,现在先按自己的理解理一下思路。后续有时间在针对里面详细的攻击方法做详解。

一.跨站脚本介绍

跨站脚本攻击(XSS)是一种攻击技术,是攻击者将恶意代码插入到回应给用户浏览器的代码中的一种实例。跨站脚本的几个特点:

受害者:跨站作用在客户端,而不是服务端,即受害者是客户端而不是服务器。

跨站类型:反射式;持久式;基于DOM式;其它式(包括嵌入FLASH,PDF等其它载体)。

1. 非持久型XSS漏洞一般存在于URL参数中,需要访问黑客构造好的特定URL才能触发漏洞。

2. 持久型XSS漏洞一般存在于富文本等交互功能,如发帖留言等,黑客使用的XSS内容经正常功能进入数据库持久保存。

3. DOM XSS漏洞,也分为持久和非持久型两种,多是通过javascript DOM接口获取地址栏、referer或编码指定HTML标签内容造成。

4. FLASH,PDF等其他第三方文件所造成的特殊XSS漏洞,同样按应用功能也分为持久和非持久型。

对跨站三种类型的理解:客户端执行了 客户端提交给服务端,服务端返回的恶意代码。

反射型:服务端提取用户的输入,未做严格过滤,直接返回给客户端,客户端浏览器执行了代码。

1)对数据未做严格净化返回给客户端。

2)实现攻击需要点击攻击者构造的链接,每次点击完成一次攻击,因为不能保存。

存储型:

1)对数据未做严格净化返回给客户端,客户端执行了恶意代码。

2)攻击者构造链接完成攻击,受害者点击正常的链接,就会受影响。因为代码已经被保存。

DOM型:

1)对数据未做严格净化返回给客户端,客户端执行了恶意代码。

2)服务端返回给客户端的是同样的代码(js代码),在客户执行的时候才出问题,在服务端的响应中是没有恶意代码的。DOM型可以是反射型或者存储型,在于js代码是否存储输入的值。

 

几个区别:

反射式和存储式的区别:

1)服务端对数据的处理方式:一个是保存后返回,一个是直接返回。

2)出现的触发点不一样:反射一般出现在返回错误信息等,而存储一般

出现在填写表单等。(本质是第一个的原因,看哪些情况是要保存数据的,哪些情况是不保存数据的)

3)是否是一次性的,反射是一次性,每次都要点。 存储不是。(本质也是第一个原因,因为存储保存了代码)。

所以综上,区别其实就一个,就是服务端有没有保存数据,其他就是根据特点得出的。

DOM式和上面的两个的区别:

DOM是因为服务端处理数据用的是js代码,不会对数据进行处理

而是到达浏览器后才处理的,所以在响应代码中是没有恶意代码的。它也可以是保存或者反射,在于js代码中有没有保存输入的值。

 

二.CST、CFS、CSRF

2.1 CST

CST攻击是一种使用XSS和HTTP TRACE功能来进行攻击的方式。它是一种攻击技巧,可以利用它避开HttpOnly对cookie提供的保护,使之能够通过客户端JavaScript获取已经标记为HttpOnly的cookie值。

正常情况下,客户端脚本(如JS脚本)是可以通过document.cookie函数获得,这样如果有XSS跨站漏洞,cookie很容易被盗取。浏览器有一个安全策略,通过设置cookie的httponly属性,这样客户端脚本就不能通过document.cookie访问该cookie,即时有跨站漏洞,也不能盗取用户cookie。(注意:httponly属性对正常的HTTP请求并没有影响,即时Cookie设置了HTTPONLY属性,当用户浏览有效域中的站点时候,这个Cookie仍然被自动发送,只是不能使用脚本来访问该Cookie。(解释HTTPONLY)

一般客户端向服务器请求是利用HTTP GET和POST方式,但那只是常见,还有其它方式(详细参考RFC2616文档)。其中HTTP TRACE也是一种方式,这种向服务端请求信息主要用于调试web服务器连接用。如果请求有效,则在响应中会在实体中包含整个请求消息。(解释HTTP TRACE)

与XSS联系和区别:

联系:CST是XSS的一种子类,也属于XSS跨站漏洞。

区别:浏览器请求的方式不一样,普通的XSS一般通过GET和POST方式在页面上输入攻击脚本实现,但是CST如果要在页面上输入,需要找到会通过TRACE发送的输入点,一般是自己构造攻击报文在TRACE方法中进行发送。

测试相关:

由于普通的XSS攻击报文可以通过GET或者POST被提交,而CST则要通过TRACE来提交,由于比较少用,目前还未搜索到有页面输入框可以使用TRACE提交的。因此对它的测试需要注意,攻击脚本中需要自己提供发送函数,比如使用XMLHttpRequest发送请求(当然普通的XSS攻击也需要覆盖用XMLHTTPRequest发送GET、POST请求)。

测试总结:对CST的测试只需要将普通XSS的攻击特征脚本放在HTTP的TRACE位置发送出去就可以。

2.2 CFS

在浏览器的安全机制中,客户端脚本是不能访问不同服务器或域名的页面相关信息。而通过HTML的frame/iframe可以在页面中包含第三方服务器的页面,这样攻击者可以利用主页面的脚本程序获取到frame/iframe包含的第三方服务器的信息。

同源策略:客户端脚本是不能访问不同服务器或域名的页面相关信息,但是也有例外,可以通过设置document.domain解决,在两个不同域名的客户端脚本都设置document.domain为同个父域。(注意:两个域是要拥有同个父域这个方法才有效果),然后在主页面加载FRAME/IFRAME页面实现,主页就可以调用框架内的页面的元素。

与XSS的联系和区别:

联系:CFS是XSS的一种攻击子类,也属于XSS跨站漏洞。

区别:CFS主要利用HTML中的FRAME/IFRAME来实现跨站攻击。将他单独出来,主要是由于他攻击后效果不同,有一些特殊的场景。

测试相关:

CFS的测试和XSS的测试一样,被包含在XSS测试中,是它的一个子集,特征为frame和iframe关键字。如果针对性测试,就是对frame和iframe进行各种编码。

2.3 CSRF 

CSRF:cross site request forgery,跨站请求伪造。是一种将受害用户欺骗到包含有恶意HTTP请求的页面的攻击方式,这种攻击方式的危害性在于它继承了受害用户的实体身份和权限,即盗用了受害人的身份以其的名义进行非法的操作,比如篡改用户资料、用户密码、以及购买物品等。通俗的说,CSRF攻击是在受害者毫不知情的情况下以受害者名义伪造请求发送给受攻击站点,从而在未授权的情况下执行受害者权限保护之下的操作。

CSRF(XSRF)的本质:服务端对客户端的COOKIE校验不严格,导致被攻击者盗用。

 

CSRF攻击方式

1)情况一:站点B和站点A是不同站点,站点B中的请求代码URL没有包含脚本,而是正常的请求情况,只是利用了浏览器而浏览器不知道而已。这个时候用户点击恶意网站B发送给站点A的报文 和 用户真实发送给站点A的报文只有在referer字段有所区别。Referer字段会显示发送的起始域,也就是站点B。

2)情况二:站点B和站点A重合,这个时候利用站点B的存储XSS漏洞使得用户发送请求给站点A的其它页面。

3)情况三:站点B和站点A是不同站点,但是站点B中的请求的代码含有JS代码来实现相应功能。同时站点A有XSS漏洞,会使得传给站点A的代码返回到客户端执行。

以上三种情况仅情况二是比较特殊的,测试时候需要构造referer字段与用户登录的时候域不一样的域名,其它两种同XSS攻击无区别。

 

与XSS的联系和区别:

联系:CSRF可以利用XSS实现更有用的攻击(经常也这么用)。上述情

二和情况三就是利用XSS漏洞的情况。

区别:CSRF不是XSS的子类,他们的本质问题不一样。XSS本质是服务端对输入过滤不严而后输出的时候将客户端的脚本再输出。CSRF是服务端对用户的身份认证不严格(cookie等),使得攻击者冒充用户达到攻击目的。

测试相关:

对于CSRF测试,两个方面测试:

1)包括XSS测试,同XSS测试,重点在于请求方法。主要有两种:XMLHTTPRequest和带有SRC属性的标签(frame、iframe、img、input)等。

2)测试Referer域的URL是其它地址,非请求的本URL地址。

 

三. 跨站攻击整个学习思路:

     跨站本质-->跨站类型分析-->有效载荷内容(就是能完成什么攻击,攻击效果上)-->载荷传送方式--》检测漏洞方式 

CST和CFS都是在有效载荷内容上的区别。

CSRF本质跟XSS不一样,经常是利用XSS漏洞的功能完成载荷更复杂的功能,达到更好的攻击效果。

 

 

 

 

 本文转自wzhj132 51CTO博客,原文链接:http://blog.51cto.com/wzhj132/781626

 

 

 

 


相关文章
|
6天前
|
安全 大数据 数据挖掘
课时9:阿里云Web应用防火墙:全面保障网站的安全与可用性
阿里云Web应用防火墙(WAF)基于阿里巴巴十年攻防经验,提供全面的网站安全防护。它通过Web应用防护、CC攻击防护和业务风控,有效应对各类网络威胁,确保网站的安全与可用性。智能双引擎技术降低误报率,实时数据分析和虚拟补丁更新保障系统安全。WAF已成功护航多个重大活动,为企业提供高效、简便的安全解决方案。
|
22天前
|
人工智能 Linux iOS开发
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
45 12
Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
|
3月前
|
缓存 安全 搜索推荐
阿里云先知安全沙龙(北京站) ——浅谈Web快速打点
信息收集是网络安全中的重要环节,常用工具如Hunter、Fofa和扫描工具可帮助全面了解目标系统的网络结构与潜在漏洞。遇到默认Nginx或Tomcat 404页面时,可通过扫路径、域名模糊测试、搜索引擎缓存等手段获取更多信息。AllIN工具(GitHub: P1-Team/AllIN)能高效扫描网站路径,发现敏感信息。漏洞利用则需充分准备,以应对突发情况,确保快速拿下目标站点。 简介:信息收集与漏洞利用是网络安全的两大关键步骤。通过多种工具和技术手段,安全人员可以全面了解目标系统,发现潜在漏洞,并制定有效的防御和攻击策略。
|
3月前
|
安全 应用服务中间件 网络安全
实战经验分享:利用免费SSL证书构建安全可靠的Web应用
本文分享了利用免费SSL证书构建安全Web应用的实战经验,涵盖选择合适的证书颁发机构、申请与获取证书、配置Web服务器、优化安全性及实际案例。帮助开发者提升应用安全性,增强用户信任。
|
4月前
|
Web App开发 网络协议 安全
基于Web攻击的方式发现并攻击物联网设备介绍
基于Web攻击的方式发现并攻击物联网设备介绍
72 4
|
4月前
|
SQL 负载均衡 安全
安全至上:Web应用防火墙技术深度剖析与实战
【10月更文挑战第29天】在数字化时代,Web应用防火墙(WAF)成为保护Web应用免受攻击的关键技术。本文深入解析WAF的工作原理和核心组件,如Envoy和Coraza,并提供实战指南,涵盖动态加载规则、集成威胁情报、高可用性配置等内容,帮助开发者和安全专家构建更安全的Web环境。
125 1
|
4月前
|
安全 Go PHP
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第27天】本文深入解析了Web安全中的XSS和CSRF攻击防御策略。针对XSS,介绍了输入验证与净化、内容安全策略(CSP)和HTTP头部安全配置;针对CSRF,提出了使用CSRF令牌、验证HTTP请求头、限制同源策略和双重提交Cookie等方法,帮助开发者有效保护网站和用户数据安全。
129 2
|
4月前
|
安全 前端开发 Java
Web安全进阶:XSS与CSRF攻击防御策略深度解析
【10月更文挑战第26天】Web安全是现代软件开发的重要领域,本文深入探讨了XSS和CSRF两种常见攻击的原理及防御策略。针对XSS,介绍了输入验证与转义、使用CSP、WAF、HTTP-only Cookie和代码审查等方法。对于CSRF,提出了启用CSRF保护、设置CSRF Token、使用HTTPS、二次验证和用户教育等措施。通过这些策略,开发者可以构建更安全的Web应用。
153 4
|
7天前
|
机器学习/深度学习 开发框架 API
Python 高级编程与实战:深入理解 Web 开发与 API 设计
在前几篇文章中,我们探讨了 Python 的基础语法、面向对象编程、函数式编程、元编程、性能优化、调试技巧以及数据科学和机器学习。本文将深入探讨 Python 在 Web 开发和 API 设计中的应用,并通过实战项目帮助你掌握这些技术。
|
3月前
|
前端开发 安全 JavaScript
2025年,Web3开发学习路线全指南
本文提供了一条针对Dapp应用开发的学习路线,涵盖了Web3领域的重要技术栈,如区块链基础、以太坊技术、Solidity编程、智能合约开发及安全、web3.js和ethers.js库的使用、Truffle框架等。文章首先分析了国内区块链企业的技术需求,随后详细介绍了每个技术点的学习资源和方法,旨在帮助初学者系统地掌握Dapp开发所需的知识和技能。
2025年,Web3开发学习路线全指南

热门文章

最新文章