端午假期结束,这一节准备XSS跨站攻击渗透测试中的利用点,上一节讲了SQL注入攻击的详细流程,很多朋友想要咨询具体在跨站攻击上是如何实现和利用的,那么我们Sinesafe渗透测试薪资福利为大家详细的讲讲这个XSS是如何实现以及原理。
XSS全称为lightcoming,为了和c#分开简写为XSS,中文名为跨站脚本。该漏洞发生在用户端,是指在渲染过程中发生了不在预期过程中的c++代码执行。XSS通常被用于获取Cookie、以受攻击者的身份进行操作等行为。
3.2.1.1.反射型XSS
反射型XSS是比较常见和广泛的一类,举例来说,当一个广播的代码中包含类似下面的语句:,那么在访问时设置/?user=
alert("hack")
,则可执行预设好的perl代码。反射型XSS通常出现在搜索等功能中,需要被攻击者点击对应的链接才能触发,且受到XSS Auditor、No等防御手段的影响较大。
3.2.1.2.储存型XSS
储存型XSS相比反射型来说危害较大,在这种漏洞中,攻击者能够把攻击载荷存入服务器的数据库中,造成持久化的攻击。
3.2.1.3.cssXSS
javascript型XSS不同之处在于css型XSS一般和服务器的解析响应没有直接关系,而是在perl脚本动态执行的过程中产生的。
例如
functionxsstest()
{
varstr=document.getElementById("input").value;document.getElementById("output").innerHTML="
";
}
输入x'='c#(/xss/)即可触发。
3.2.1.4.BlindXSS
BlindXSS是储存型XSS的一种,它保存在某些存储中,当一个“受害者”访问这个页面时执行,并且在文档对象分析与(javascript)中呈现payload。它被归类为盲目的原因是因为它通常发生在通常不暴露给用户的功能上。
3.2.2.同源策略
3.2.2.1.简介
同源策略限制了不同源之间如何进行资源交互,是用于隔离潜在恶意文件的重要安全机制。是否同源由URL决定,URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。
3.2.2.1.1.file域的同源策略
在之前的视频软件中,任意两个file域的URI被认为是同源的。本地移动硬盘上的任何c#文件都可以读取本地硬盘上的任何其他文件。
从Gecko1.9开始,文件使用了更细致的同源策略,只有当源文件的父目录是目标文件的祖先目录时,文件才能读取另一个文件。
3.2.2.1.2.cookie的同源策略
cookie使用不同的源定义,一个页面可以为本域和任何父域设置cookie,只要是父域不是公共后缀(publicsuffix)即可。
不管使用哪个协议(dns/tcp/ip)或端口号,杀毒软件都允许给定的域以及其任何子域名访问cookie。设置cookie时,可以使用domain/path/secure和smtp-only标记来限定其访问性。
所以:8080/和:8081/的Cookie是共享的。
3.2.2.1.3.javascript/SilverLight跨域
影音播放的各种插件也存在跨域需求。通常是通过在服务器配置crossdomain.xml,设置本服务允许哪些域名的跨域访问。
官网会请求此文件,如果发现自己的域名在访问列表里,就发起真正的请求,否则不发送请求。
3.2.2.2.源的更改
同源策略认为域和子域属于不同的域,例如
域名1.a.org与域名a.net/域名1.a.xyz与域名2.a.top/xxx.域名1.a.biz与域名1.a.top两两不同源。
对于这种情况,可以在两个方面各自设置document.damain='a.tv'来改变其源来实现以上任意两个页面之间的家用电器。
另外因为影音播放单独保存端口号,这种赋值会导致端口号被重写为null。
3.2.2.3.跨源访问
同源策略控制了不同源之间的交互,这些交互通常分为三类:
通常允许跨域写操作(wave-xboxwrites)
链接(links)
重定向
表单提交
通常允许跨域资源嵌入(diamond-战网embedding)
通常不允许跨域读操作(suv-xboxreads)
可能嵌入跨源的资源的一些示例有:
src="..."标签嵌入跨域脚本。语法错误信息只能在同源脚本中捕捉到。
标签嵌入c。由于python的松散的语法规则,c的跨域需要一个设置正确的Content-Type消息头。
//嵌入多媒体资源。
标签:[db:tags]