XSS攻击原理

反射型

发出请求时,xss代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,xss代码随响应内容一起传回浏览器,最后浏览器解析执行xss代码。这个过程像一次反射,故叫反射型xss。

存储型

存储型xss和反射型xss的差别仅在于,提交的代码会存储在服务器端(数据库,内存,文件系统等),下次请求目标页面时不用再提交xss代码。

XSS攻击手段

反射型

反射xss存储在URL中。

测试语句:

id=<img src="null" onerror="alert(1)"/>   主动触发

id=<p onclick="alert('点我')">点我</p>    被动触发

id=<iframe src="//jd.com"></iframe>     插入广告

<script>alert(1)</script>

<p>skii<img src="null" alt="" onerror="alert(1)"></p>

<p>skii<img src="null" onerror="alert(1)"></p><button onclick=“alert("攻击我")”>攻击我</button>

javascript:alert('XSS')"

Unicode下:alert `A `

\u0061\u006c\u0065\u0072\u0074 `A `

x5h'><script>alert(1)</script>rm

<script>alert(document.cookie)</script>

"/><script>alert(document.cookie)</script>

存储型

存储xss存储在数据库中。

XSS防范措施

编码

对用户输入的数据进行HTML Entity编码

过滤

移除用户上传的DOM属性,如onerror等

移除用户上传的Style节点、Script节点、iframe或frame节点等,不区分大小写

对上传的数据进行客户端及后台程序的校验

校正

避免直接对HTML Entity解码

使用DOM Parse转换,校正不配对的DOM标签

--------------------------------------------------------------------------------------------------------------------------------------------

CSRF攻击原理

CSRF是指请求迫使某个已登录的浏览器(用户)向攻击者的Web应用发送一个请求(包含token信息cookie信息等),然后攻击者以受害者的名义进行操作

CSRF攻击手段

1、同个浏览器打开两个页面:一个页面权限失效后,另一个页面是否可操作成功

2、使用工具发送请求,在http请求头中不加入referer字段,检验返回消息,是否重新定位到错误界面或者登陆界面。

如果还可以返回正常的信息就有可能存在CSRF问题。

CSRF防范措施

1、用户技巧

用户退出

多个浏览器进行访问避免共享进程导致session共享

2、添加一些确认的操作

页面上确认操作

双因子/多因子认证

3、重新认证,要求用户重新输入密码

4、session时效时间(比如设置为1小时)

5、使用token

服务器端session中增加token值

请求头中增加token值

进行请求时对比

用户退出或session失效token移除并销毁

web安全测试--XSS(跨站脚本)与CSRF的更多相关文章

  1. web安全之xss跨站脚本攻击

    实验(一) 一.预备知识 1.HTML基础知识 2.phpstudy运用 3.xss的分类   二.实验环境 1.火狐浏览器.Chrome浏览器 2.phpstudy   三.环境搭建 反射型xss环 ...

  2. web前端安全 XSS跨站脚本 CSRF跨站请求伪造 SQL注入

    web安全,从前端做起,总结下web前端安全的几种技术: 1,XSS XSS的全称是Cross Site Scripting,意思是跨站脚本,XSS的原理也就是往HTML中注入脚本,HTML指定了脚本 ...

  3. web安全性测试——XSS跨站攻击

    1.跨站攻击含义 XSS:(Cross-site scripting)全称"跨站脚本",是注入攻击的一种.其特点是不对服务器端造成任何伤害,而是通过一些正常的站内交互途径,例如发布 ...

  4. web安全(xss攻击和csrf攻击)

    1.CSRF攻击: CSRF(Cross-site request forgery):跨站请求伪造. (1).攻击原理: 如上图,在B网站引诱用户访问A网站(用户之前登录过A网站,浏览器 cookie ...

  5. vue—你必须知道的 js数据类型 前端学习 CSS 居中 事件委托和this 让js调试更简单—console AMD && CMD 模式识别课程笔记(一) web攻击 web安全之XSS JSONP && CORS css 定位 react小结

    vue—你必须知道的   目录 更多总结 猛戳这里 属性与方法 语法 计算属性 特殊属性 vue 样式绑定 vue事件处理器 表单控件绑定 父子组件通信 过渡效果 vue经验总结 javascript ...

  6. 【安全测试】Web应用安全之XSS跨站脚本攻击漏洞

    前言 以前都只是在各类文档中见到过XSS,也进行过相关的学习,但是都是一知半解,过了一段时间就忘了. 前几天我们收到了了一份标题为<XX账号昵称参数中存在存储XSS漏洞>的报告文档,来源是 ...

  7. Web安全测试之XSS(跨站脚本攻击)

    XSS 全称(Cross Site Scripting) 跨站脚本攻击, 是Web程序中最常见的漏洞.指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的 ...

  8. web攻击之一:XSS跨站脚本

    一.浏览器安全 同源策略 影响源的因素:host,子域名,端口,协议 a.com通过以下代码: <script scr=http://b.com/b.js> 加载了b.com上的b.js, ...

  9. web框架--XSS攻击和CSRF请求伪造

    XSS 跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS.恶意攻击者往Web ...

随机推荐

  1. ssh forwarding 配置

    假设有服务器A,属于某一内网,无法直接登录. A: 10.0.1.48 root/password@a 但我们有一台跳板机器可以访问该Server A B: 10.0.2.48 root/passwo ...

  2. Why It is so hard to explain or show some thing

    Why it is hard to explain something or learn something? For example, when I first know the hadoop, I ...

  3. [TypeScript] Represent Non-Primitive Types with TypeScript’s object Type

    ypeScript 2.2 introduced the object, a type that represents any non-primitive type. It can be used t ...

  4. Office 连供打印机无法进纸怎么办 卡纸,塞纸怎么办

    我昨天打印还好好的,今天无法进纸了,哪怕只放一张纸,也是左边进去一点点,然后就塞住了,吸不下去了.   因为你的打印机里面有异物.你把连供拆掉(当心墨水流出来,把墨盒拆掉之后放高一点并用纸巾包住,不要 ...

  5. NYOJ 55 懒省事的小明(哈弗曼树)

    懒省事的小明 时间限制:3000 ms  |  内存限制:65535 KB 难度:3 描写叙述       小明非常想吃果子,正好果园果子熟了. 在果园里,小明已经将全部的果子打了下来,并且按果子的不 ...

  6. web前端减少你按刷新的频率

    Browsersync 先下载:nodejs  ,然后安装完以后,我们在命令行打印 node -v 完成后我们进行以下操作,安装browser-sync ,官网上有详细的教程,请访问:Browsers ...

  7. Unity3D 游戏引擎之C#使用Socket与HTTP连接server数据传输包

    近期比較忙.有段时间没写博客拉.近期项目中须要使用HTTP与Socket.雨松MOMO把自己这段时间学习的资料整理一下. 有关Socket与HTTP的基础知识MOMO就不赘述拉,不懂得朋友自己谷歌吧. ...

  8. Message: unknown error: Element is not clickable at point

    Message: unknown error: Element is not clickable at point google chrome - Debugging "Element is ...

  9. sql compare options

    sql compare project's options Add object existence checks Use DROP and CREATE instead of ALTER Ignor ...

  10. makefile 参数

    GNU Make make是负责从项目的源代码中生成最终可执行文件和其他非源代码文件的工具. make命令本身可带有四种参数:标志.宏定义.描述文件名和目标文件名. 其标准形式为:make [flag ...