浅谈xss

什么是xss

  xss通常就是通过巧妙的方法注入(前端脚本)指令到指定页面,使用户加载执行的恶意的js(或者其他类型)代码,攻击者可能会盗取用户的一系列信息,造成网站的破坏,跳转到其他恶意页面等

xss的危害;

  钓鱼欺骗

  网站挂马

  身份盗用

  盗取网站用户信息

  垃圾信息发送

  劫持用户web行为

  xss蠕虫

xss的分类:

  反射型:需要构造一个链接来诱使用户点击恶意连接,

  存储型:将恶意的xss代码存储到数据库中,只要用户访问了含有指定xss恶意代码的网页,浏览器就会执行xss中的而已代码,从而使在不知情的情况下执行一系列的恶意操作

  Dom型:通过闭合标签或者添加标签的属性(制作js响应事件)的方式来进行攻击

 

xss注入的方式:

  <script>标签注入:直接script标签进行xss的注入,

  js事件注入:“ onclick=alert(1)

  行内样式注入:style="color: expression(alert('XSS'))" & herf="javascript:alert(1)"

  外部样式导入:<style>@import(URL)</style> & <style>@import'javascript:alert(1)'</style>

 

xss注入的绕过方法:

  关键字双写:<scrip<script>t>

  使用Unicode编码绕过:<sc&#x105;ipt>

  关键字大小写绕过:<scRIpt>

  内联属性绕过:" onclick=alert(1)

  空格绕过:当关键字被屏蔽或者过滤的时候,可以使用空格分隔关键字尝试绕过

  expression+css绕过:style="color: expression(alert(1))"

  使用注释/**/绕过:关键字被屏蔽的时候,尝试中间加上js注释绕过关键字过滤

  

配合xss平台获取用户信息:

  通过xss平台获取用户信息

    <script src="URL"></script>

 

反射性xss的利用条件:用户处于登录状态,并且诱使用户点击恶意连接到目标网站的

 

xss的防御:

  1.用户输入的长度限制

  2.xss的防御最重要的一点,也就一点就足够了,就是将用户输入的所有字符都转义为html实体(<  ---&lt;)显示,因为xss注入不管是标签注入还是属性注入,都需要<或者引号的支持,和防御sql注入一样,将本次所有的输入替换成value的值就可以

防御代码:将用户用户输入的所有参数转换为HTML实体即可

  

 

 

  

posted @   追得上的梦想  阅读(489)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示