XSS漏洞介绍

一.什么是XSS跨站脚本

XSS(Cross Site Scripting)跨站脚本诞生于1996年。XSS一直被OWASP(Open Web Application Security Project)组织评为十大安全漏洞中的第二威胁漏洞,也有黑客把跨站脚本当做新型的“缓冲区溢出攻击”,而JavaScript则是新型的Shellcode。2011年6月份,国内知名信心发布平台新浪微博爆发了XSS蠕虫攻击,新浪微博的XSS蠕虫爆发仅持续了16分钟,感染的用户就达到将近3300个。

XSS最大的特点就是能注入恶意的HTML/JavaScript代码到用户浏览的网页上,从而达到劫持用户会话的目的。由于HTML代码和客户端JavaScript脚本能在受害者主机上的浏览器任意执行,这样等同于完全控制了WEB客户端的逻辑,在这个基础上,攻击者可以轻易地发送各种各样的攻击。

XSS是一种经常出现在WEB应用程序中的计算机安全漏洞,是由于WEB应用程序对用户输入过滤不足而产生的。攻击者利用网站漏洞把恶意的脚本代码注入到网页中,当其他用户浏览这些网页时,就会执行其中的恶意代码,对受害用户可能采取Cookie资料窃取、会话劫持、钓鱼欺骗等攻击手段。

 

二.XSS跨站脚本实例

如果不明白跨站脚本漏洞的成因,请思考下面的代码:

<html>
<head>andrew</head>
<body>
<script>alert("XSS")</script>
</body>
</html>

这段代码使用内置的alert()函数来打开一个消息框,消息框中显示XSS信息,使用XSS弹出恶意警告框,代码为:

<script>alert("XSS")</script>

XSS输入也可能是HTML代码段,如要使网页不停地刷新,代码为:

<meta http-equiv="refresh" content="0";>

嵌入其他网站链接的代码为:

<iframe src=http://www.baidu.com width=0 height=0></iframe>

我以一个简单的PHP网页为例来具体说明XSS攻击的原理。

<html>
<head>
<title>Andrew</title>
</head>
<body>
<form action="xss.php" method="post">
请输入名字:<br>
<input type="test" name="name" value=""></input>
<input type="submit" value="提交"></input>
</body>
</html>

xss.php:

<html>
<head>
<title>测试结果</title>
</head>
<body>
<h3>测试结果是:</h3>
<?php
echo $_REQUEST[name];
?>
</body>
</html>

以上代码使用$REQUEST[name]获取用户输入的name变量,然后直接echo输出。打开测试页面,随便输入一些信息,例如:andrew。

 

文本框中输入:<script>alert(/XSS/)</script>,这就导致一个XSS的生成。

 

php代码中使用了$_REQUEST方式获取提交的变量,因此我们可以用GET方式触发XSS,即直接浏览器访问:在xss.php后直接加?name=<script>alert(/XSS/)</script>

 

三.XSS漏洞的危害

以往,XSS跨站脚本一直被当成一种鸡肋漏洞,只能弹窗,稍微有点危害的就用来盗取用户Cookies资料和网页挂马。如今,只要一个站点存在跨站漏洞脚本,该站点的所有用户都可能是受害者。黑客一旦挖掘到XSS漏洞,就会利用漏洞进行会话劫持、资料窃取、渗透入侵和传播蠕虫病毒等。XSS会给网站带来的危害如下:

  1. 盗取各种用户账号
  2. 窃取用户cookie资料,冒充用户身份进入网站
  3. 劫持用户会话,执行任意操作
  4. 刷流量,执行弹窗广告
  5. 网页挂马
  6. 进行DDOS攻击
  7. 用户提权,进一步渗透网站
  8. 传播蠕虫病毒
  9. ……
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值