博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Web安全之XSS攻击与防御小结
阅读量:6689 次
发布时间:2019-06-25

本文共 1414 字,大约阅读时间需要 4 分钟。

Web安全之XSS攻防

1. XSS的定义

跨站脚本攻击(Cross Site Scripting),缩写为XSS。恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的。

2. XSS的原理

  • 攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。
  • 诱使受害者打开受到攻击的服务器URL。
  • 受害者在Web浏览器中打开URL,恶意脚本执行。

3. XSS的攻击方式

(1)反射型: 发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS随响应内容一起返回给浏览器,最后浏览器解析执行XSS代码,这个过程就像一次发射,所以叫反射型XSS。

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

4. XSS的防御措施

(1)编码:对用户输入的数据进行HTML Entity编码 

(2)过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。

(3)校正:避免直接对HTML Entity编码,使用DOM Prase转换,校正不配对的DOM标签。

5. 应用示例

构建node应用,演示反射型XSS攻击。(Linux操作系统中)

本例子的代码地址: (xss_test1)

(1) 新建一个文件夹xss: mkdir xss_test1

(2) 切换目录到该文件夹下: cd xss

(3) 安装express: express -e ./

(4) 构建应用依赖: npm install

(5) 打开构建好的node应用,得到目录:

(6) 开启node服务:npm start

(7) 在浏览器地址栏输入:localhost:3000 ,得到:

(8) 加入xss

修改xss_test1文件routers目録下的index.js文件:

修改xss_test1文件views目录下的index.ejs文件:

(9) 重启node服务:npm start ,打开浏览器

a. 在地址栏输入: localhost:3000/?xss=hello

运行结果得到:

b. 在地址栏输入:localhost:3000/?xss=<img src="null" onerror="alert(1)">

运行结果得到:

说明: 如果代码中没有 res.set('X-XSS-Protection', 0); 则会发现没有弹出框,这是因为浏览器自动设置了拦截XSS,所以onerror事件并不会执行,而加上了:res.set('X-XSS-Protection', 0); 才会出现弹框,这才完成了一次xss攻击。

c. 在地址栏输入:localhost:3000/?xss=<p onclick="alert(%点我%)">点我</p>

运行结果得到:

说明: 这种攻击就是常用于篡改页面内容,破坏页面结构,引诱用户去点击一些钓鱼等网站的手段。

d. 在地址栏输入:localhost:3000/?xss=<iframe src="//baidu.com/t.html"></iframe>

运行结果得到:

说明:这种攻击就常用于广告植入等。

转载地址:http://wwuoo.baihongyu.com/

你可能感兴趣的文章
Linux下部署多个Tomcat
查看>>
互联网mysql表设计
查看>>
ListView原理与优化
查看>>
Scala单例对象和伴生对象
查看>>
epoll_create, epoll_ctl和epoll_wait 实例讲解,总结得不错
查看>>
DNS权威性应答与非权威性应答的关系
查看>>
Python3快速入门(四)——Python包管理
查看>>
QT开发(三十八)——Model/View框架编程
查看>>
Docker镜像与容器命令
查看>>
Java基础学习总结(7)——Object类
查看>>
Myeclipse优化配置
查看>>
Spring常用注解
查看>>
windows 10常用快捷键举例
查看>>
关于 logger
查看>>
Oracle 约束的基础知识介绍
查看>>
下一代前端打包工具与tree-shaking
查看>>
web前端响应式设计总结
查看>>
安全配置,关闭iis 错误页面显示详细内容
查看>>
网页客户端无法打开citrix ica后缀文件
查看>>
Orchestrator 2012r2之 创建自动部署虚拟机runbook
查看>>