2018-03-05
xss攻击
安全 评论:0 浏览:114

转载请注明出处:https://oldnoop.tech/c/152.html

XSS的定义

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

XSS的原理

攻击者对含有漏洞的服务器发起XSS攻击(注入JS代码)。

诱使受害者打开受到攻击的服务器URL。

受害者在Web浏览器中打开URL,恶意脚本执行。

XSS的攻击方式

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

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

XSS的防御措施

(1)编码:对用户输入的数据进行HTML Entity编码 
这里写图片描述 
(2)过滤:移除用户上传的DOM属性,如onerror等,移除用户上传的style节点,script节点,iframe节点等。

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

 

xss攻击例子

比如服务器 暴露一个请求路径,接收一个param名称的参数

http://localhost:8080/index.jsp?param=参数

index.jsp代码如下

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%

//设置取消xss防护,防止浏览器默认开启xss防护
response.addHeader("X-XSS-Protection","0");
String value = request.getParameter("param");
out.println(value);
%>

 

浏览器访问这个地址,http://localhost:8080/index.jsp?param=world

页面输出 hello,world

浏览器访问这样的地址,

 

http://localhost:8080/index.jsp?

param=< iframe src= "https://baidu.com" width="900" height="500" >< /iframe >

就会造成xss攻击,在iframe中访问了百度的网站地址,



  • 转载请注明出处:https://oldnoop.tech/c/152.html

Copyright © 2018 oldnoop.tech. All Rights Reserved

鄂ICP备2023022735号-1