摘要:渗透测试XSS跨站攻击检测手法府谷人的爱情故事
国庆假期结束,这一节准备XSS跨站攻击渗透测试中的利用点,上一节讲了SQL注入攻击的详细流程,很多朋友想要咨询具体在跨站攻击上是如何实现和利用的,那么我们渗透测试工程师为大家详细的讲讲这个XSS是如何实现以及原理。
XSS全称为Cross Site ing,为了和css分开简写为XSS,中文名为跨站脚本。该漏洞发生在用户端,是指在渲染过程中发生了不在预期过程中的JAVA代码执行。XSS通常被用于获取Cookie、以受攻击者的身份进行操作等行为。
3.2.1.1. 反射型XSS
反射型XSS是比较常见和广泛的一类,举例来说,当一个网站的代码中包含类似下面的语句:<?php echo "<phello, $_GET['user']</p";? ,那么在访问时设置 /?user=</p<alert("hack")</<p ,则可执行预设好的Java代码。 反射型XSS通常出现在搜索等功能中,需要被攻击者点击对应的链接才能触发,且受到XSS Auditor、No等防御手段的影响较大。
3.2.1.2. 储存型XSS
储存型XSS相比反射型来说危害较大,在这种漏洞中,攻击者能够把攻击载荷存入服务器的数据库中,造成持久化的攻击。
3.2.1.3. DOM XSS
DOM型XSS不同之处在于DOM型XSS一般和服务器的解析响应没有直接关系,而是在Java脚本动态执行的过程中产生的。
例如
<html
<head
<titleDOM Based XSS Demo</title
<
function xsstest()
{
var str = document.getElementById("input").value; document.getElementById("output").innerHTML = "<img src='"+str+"'</img";
}
</
</head
<body
<p id="output"</p
<input type="text" id="input" size=50 value="" /
<input type="button" value="submit" onclick="xsstest()" / </body
</html
输入 x' ='java:alert(/xss/) 即可触发。
3.2.1.4. Blind XSS
Blind XSS是储存型XSS的一种,它保存在某些存储中,当一个受害者访问这个页面时执行,并且在文档对象模型(DOM)中呈现payload。它被归类为盲目的原因是因为它通常发生在通常不暴露给用户的功能上。
3.2.2. 同源策略
3.2.2.1. 简介
同源策略限制了不同源之间如何进行资源交互,是用于隔离潜在恶意文件的重要安全机制。是否同源由URL决定,URL由协议、域名、端口和路径组成,如果两个URL的协议、域名和端口相同,则表示他们同源。
3.2.2.1.1. file域的同源策略
在之前的浏览器中,任意两个file域的URI被认为是同源的。本地磁盘上的任何HTML文件都可以读取本地磁盘上的任何其他文件。