🥗XSS跨站脚本攻击⛺

💺XSS跨站脚本攻击🌠

1.简介🎄

XSS(Cross Site Scripting)跨站脚本攻击是利用系统对恶意用户的输入影响其他用户HTML的过滤不足,导致执行恶意用户的的代码.从而盗取用户cookie,用户资料等威胁.

2.整体框架📣

在这里插入图片描述

2.1XSS的发现与利用📸

2.1.1原理🔨:网站未对用户的输入进行过滤

2.1.2常见场景🛒:

        有回复框的地方都可能存在xss

2.1.3XSS分类🏳️‍🌈:

①存储型🏸:
在所有类型的xss中存储型的危害是最大的,它存储在服务器当中,每次用户访问当前页面都会执行此xss.他可以被管理员看见,并且还可以提交内容.
②反射型🌦
具体表现在我们把我们的恶意脚本通过url的方式传递给了服务器,而服务器则只是不加处理的把脚本“反射”回访问者的浏览器而使访问者的浏览器执行相应的脚本。也就是说想要触发漏洞,需要访问特定的链接才能够实现。
③DOM型🌝
DOM—based XSS漏洞是基于文档对象模型Document Objeet Model,DOM)的一种漏洞。DOM是一个与平台、编程语言无关的接口,它允许程序或脚本动态地访问和更新文档内容、结构和样式,处理后的结果能够成为显示页面的一部分。DOM中有很多对象,其中一些是用户可以操纵的,如uRI,location,refelTer等。客户端的脚本程序可以通过DOM动态地检查和修改页面内容,它不依赖于提交数据到服务器端,而从客户端获得DOM中的数据在本地执行,如果DOM中的数据没有经过严格确认,就会产生DOM—based XSS漏洞。

🌰2.1.4XSS常见playload🚙:

%MINIFYHTML111bae6c78ff25b3e9472e31e8682d3a9%

在这里插入图片描述

2.1.5XSS注入点🐸:

在标签内
xss test
在属性内: 可以输入“x>xss test ”来进行测试

2.1.5修复建议💊🤕:

  • Httponly:为了防止设置了该标志的cookie被JavaScript读取。
  • 一、SpringMVC架构下@InitBinder方法Controller方法的参数类型可以是基本类型,也可以是封装后的普通Java类型。若这个普通Java类型没有声明任何注解,则意味着它的每一个属性都需要到Request中去查找对应的请求参数,服务端通过Request的getParameter方法取到的参数都是字符串形式,WebDataBinder的作用就是把字符串形式的参数转换成服务端真正需要的类型。每次请求到来后的参数解析都会利用WebDataBinderFactory创建一个binder对象,然后从这个binder中取得最终解析好的参数对象。WebDataBinderFactory是在InvocableHandlerMethod中定义的,即不同的Controller方法有着不同的WebDataBinderFactory。@InitBinder用于在@Controller中标注于方法,表示为当前控制器注册一个属性编辑器或者其他,只对当前的Controller有效,所以要用@InitBinder实现过滤输入,转义输出,就必须在每个需要的Controller中使用@InitBinder,我的方法就是创建一个BaseController,每个需要实现此业务的都去继承它。

发表评论

电子邮件地址不会被公开。