本质上是用户输入 js , html 代码,提交至服务器(可不经过),前端和后端均未对用户的输入和输出进
行合理的过滤和限制,导致恶意 js 代码以及 html 代码被注入到网页中
危害:钓鱼欺骗、获取会话、会话劫持、网页蠕虫病毒等;
即前端代码注入,代码注入类
代码注入的本质:把用户的输入当作代码执行;
基本流程

如何引用 js
1 、 script 标签
< script > console . log () < /script>
2 、 script 标签中的 src 属性
< script src = "http://a.com/j.js" >< /script>
3 、事件( on ),(鼠标键盘窗口)
< input onclick = console . log () >
< img src = x onerror = console . log () >
4 、 a 标签 href 属性构造伪协议
< a href = javascript : console . log () > baidu < /a>
常见构造标签:
<script>alert(1)</script>
<img src = x onerror = alert(1)>
<svg onload = alert(1)>
<input onmouseover = "console.log(5)" >
<a href = "javascript:alert(1)" >
<input type = text onclick = alert(1)>
等等
xss 分类
1 、反射型
xss 恶意代码经过服务器但不存储于服务器,一次性
2 、存储型
xss 恶意代码经过服务器且存储于服务器(文件,数据库)
3 、 dom 型(也算反射型的一种)
xss 恶意代码不经过服务器,无需和服务器交互,发生在客户端处理数据时
xss 语句及过滤
1 、无尖括号,可选择用事件触发 js 代码
2 、无法使用 script 标签及 js 事件的情况下,可选择用 a 标签引入伪协议,例:
<a href = "javascript:alert(1)" > random </a>
3 、某些属性被替换,可选择大小写绕过限制
例: 
"> <a hREf = "javascript:alert(1)" > asdf </a>
用大小写穿插的方式替换 href
4 、存在过滤属性名、标签名的情况,如果过滤不严谨可尝试双写;
"> <a hrhrefef = "javascrscriptipt:alert(1)" > asdf </a>
5 、可尝试使用实体编码替换 xss 语句中值的部分,
例:
<a href = "javascript:alert(1)" > 友情链接 </a>
可替换 href 后的部分,参数无法替换
6 、观察页面,有些输入框是隐藏属性
7 、除了正常的 GET 、 POST 请求外, http 请求头,有时也可以构造 xss
8 、 ng-include, ①需要指定的是同域名下的图片或文件②搭配事件或其他 js 触发方式
9 、空格被替换,可选择类似 sql 注入中的替换方法, %0a 、 %0d 、 %09 、 / 等
10 、反单引号替换括号、中括号
11 、 img 、 input 等自闭和标签无需闭合,结尾尖括号也可省略,属性后记得加空格
12 、引入恶意 js 时,可选用邮箱格式,用户名 @ 网址,例: baidu.com@qq.com , 等价于baidu.co 作为用户名去访问qq
13 、正则不严谨时可使用空格绕过正则
14 、 svg 标签中可解析实体编码
15 、标签内增加空白符,不影响标签原有意义
xss跨站脚本(cross-site scripting)
亿林网络2024-04-20 10:31
相关推荐
oil欧哟2 分钟前
我做了一个 Vibe Coding 术语学习站:VibeHub审小匠OpenCPAi1 小时前
银行流水核查怎么自动化?单边匹配、双向勾稽与图聚类异常检测的工程对比Revolution611 小时前
一个公共表格组件,是怎么一步步失控的腻害兔1 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:CRM 客户关系模块深度解析——从线索到回款,一套完整的 B2B 销售闭环是怎么搭的?whyfail1 小时前
前端学 Spring Boot(2):一次点击,如何穿过整个后端?●VON1 小时前
鸿蒙 PC Markdown 编辑器原生右键弹层兼容白山云北诗2 小时前
漏洞扫描+渗透测试:从资产摸底到风险验证,完成二次安全收口AI多Agent协作实战派2 小时前
AI多Agent协作系统实战(二十三):Agent读HEARTBEAT.md不读AGENTS.md——openclaw的文件加载之谜2601_955760073 小时前
如何用 Claude Opus 5 API 批量扩展长尾关键词和文章选题KaMeidebaby3 小时前
卡梅德生物技术快报|bli亲和力检测gst:告别批量跑胶:BLI实时酶切监测技术加速GST融合蛋白下游流程优化