【web安全】深入浅出XSS攻击

栏目: 编程工具 · 发布时间: 5年前

内容简介:在学习发出请求时,一般xss防御措施有三种:

在学习 JS 的过程中,你一定听说过 CSRF 攻击和 XSS 攻击。关于 CSRF 攻击,我已经在之前的文章中介绍过了,本文就来介绍一下 XSS 攻击。

XSS定义和原理

发出请求时, XSS 代码出现在 url 中,作为输入提交到服务端,服务端解析后响应, XSS 代码随响应内容一起回传给浏览器,最后浏览器解析并执行 XSS 代码。

XSS防御措施

一般xss防御措施有三种:

  • 编码
  • 过滤:原样显示用户输入内容时,要把不合法的内容过滤掉。
    如dom属性、style属性、script节点、iframe节点等。
  • 校正
    使用dom parse转换,校正dom标签

XSS实战

1. 构建一个express应用

对于没有过 node 开发经验的同学,我这里简单介绍一下创建 express 应用的步骤。

  1. 创建一个目录 mkdir xss
  2. 利用 express 命令,在当前目录下创建一个 express 脚手架 express -e ./
  3. 安装所有依赖 npm install
  4. 启动服务 npm start
  5. 访问 localhost:3000

2. 修改脚手架代码,使得url中参数随响应内容回传给浏览器

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.render('index', { title: 'Express', xss: req.query.xss});
});

module.exports = router;
<!DOCTYPE html>
<html>
  <head>
    <title><%= title %></title>
    <link rel='stylesheet' href='/stylesheets/style.css' />
  </head>
  <body>
    <h1><%= title %></h1>
    <p>Welcome to <%= title %></p>
    <div>
      <%- xss %>
    </div>
  </body>
</html>

3. 参数中携带有攻击性的脚本

携带 img 标签:

http://localhost:3000/?xss=<img src="null" onerror="alert(123)"

你会发现 alert 并没有弹出来,并看到浏览器端报错。

【web安全】深入浅出XSS攻击

这是在响应头里默认加入了 xss 防御检查标志,浏览器做了 xss 防御保护。我们这里先关闭。

var express = require('express');
var router = express.Router();

/* GET home page. */
router.get('/', function(req, res, next) {
  res.set('X-XSS-Protection', 0)
  res.render('index', { title: 'Express', xss: req.query.xss});
});

module.exports = router;

此时可以看到 alert 弹窗就弹出来了。

【web安全】深入浅出XSS攻击

此时,我们就成功进行了一次 xss 攻击。

demo地址

https://blog.csdn.net/Lxd_0111/article/details/78028889

为什么要进行 url 编码?

HTTP 协议中参数的传输是“ key = value ”键值对的形式,如果要传输多个参数要用“&”符号进行分割。这样服务器在接收到这种字符串的时候,会用“&”符号分割出每个参数,再用“=”分割出参数值。

现在有这样一个问题:当参数中包含“=”或“&”等特殊字符时,服务器解析字符串就会出错。所以,需要对特殊字符进行编码。


以上所述就是小编给大家介绍的《【web安全】深入浅出XSS攻击》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

搜

(美)约翰·巴特利 / 张岩、魏平 / 中信出版社 / 2006-1 / 35.00元

这个世界需要什么?如何任何一家公司能回答好这个问题,它就掌握了控制商业社会,乃至整个人类文明的万能钥匙。在过去的几年中,Google正在为获得这把钥匙而努力。虽然Google并非搜索业务的最早开发者,但它凭借着简明、便利、实用的搜索技术和理念,逐渐击败雅虎、Alta Vista等搜索领域的先锋,成为搜索行业名副其实的王者。 本书描述了Google如何从斯坦福一个不起眼的公司迅速崛起为“......一起来看看 《搜》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具