DVWA靶场超(详细教程)--跨站攻击(XSS+CSRF)

一、XSS

  1. 反射型xss

打开dvwa的Reflected Cross Site Scripting (XSS)

(1)low等级

查看页面源码(ctrl+u)该界面有提交按钮和输入框

在输入框随便输入点字符,点击提交

可以看见输入的helloword嵌入到界面中。

View source下:

if条件从参数中拿出name的值,直接echo出来。

头部的header函数,它是向用户发送最原始请求头的。不是本文的重要内容,我举个简单的例子,感兴趣的要学会去查(包括什么是请求头,请求头的作用是什么,header具体怎么使用等等)。

输入<script>alert("jerk")</script>

查看网页源码

服务器没对我们的输入进行过滤,直接将内容传给了浏览器,浏览器将<script></script>解析成脚本标签,alert当成js脚本代码执行了。

2Medium等级

将low等级改为Medium等级

同样的XSS脚本

脚本没有执行,把内容显示了出来,虽然并没有标签。查看后台干了什么

过滤"<script>"。多了一句str_replace。它将内容中的“<script>”去掉了(替换为空),我们的输入从<script>alert</script>变成了alert()</script>。

</script>没有显示出来呢?因为他会被浏览器当成标签,而不是显示内容。又因为浏览器没有找到</script>的前端<script>,标签没有闭合,所以<script>标签并没有起作用。alert被当做文本显示了出来。

查看网页源码

可以看见前面的标签还在,后面的标签不见了。

解决方法:其实方法有很多,有很多很多的绕过姿势,这里举例两个最简单的。1.调整大小写,后台中过滤的是“<script>”,字符串是不可变的,可以换成<SCRIPT>。

提交

可以看见标签弹出

调整大小写的方式很多,如somethingwithouttitle:

标题式调整:SomethingWithoutTitle

完全式调整:SOMETHINGWITHOUTTITLE

神经式调整:sOmeTHinGWithOutTiTle(随机调整)。

  1. 复写。这个方法在sql注入中有提到,例如过滤script,就在script中间任意位置再插入一个script。

将script过滤后,我前后的内容仍旧是一个script。

构造XSS:<scr<script>ipt>alert("jerk")</script>

提交

弹出成功

3High等级

将等级改为High等级

发现使用不同的方法都无法弹出标签

查看后台

tr_replace换成了preg_replace。正则匹配,看正则表达式:/<(.*)s(.*)c(.*)r(.*)i(.*)p(.*)t/i。()内部为一个整体, 其中的.*点代表任意字符,星表示将前一单位重复0或多次。最后的/i表示不区分大小写。简单说,它过滤掉了所有包含<script的数据,无论怎样复写,而且还不区分大小写。

解决方法:对于安全级别为high等级,只是对script进行限制,但未限制其他方式。

1.<img src=x οnerrοr=alert(1)>

2.<iframe οnlοad=alert(1)>

成功进行弹窗。

4Impossible等级

无论怎样XSS,都不会有问题

view source:

核心语句:$name = htmlspecialchars( $_GET[ 'name' ] ),htmlspecialchars这个函数,就是做实体化用的,它会将输入的数据中预留字符全部转换,从而可以直接显示到界面上。不过仅此而已,但渗透也到此而已了,因为所有的输入都没有被执行的机会了。

  1. 存储型xss

打开dvwa的Stored Cross Site Scripting (XSS)模块

(1)low等级

数据库里的数据显示出来。

随机输入一些信息

下方多了一条输入的数据,如果重新加载页面,仍旧有这两条数据。这就是存储型,输入数据会被存入数据库,网页每次被打开,都会从数据库里调出显示。

先点击ClearGuestbook,清空一下在message中注入:<script>alert("This is low level")</script>

Sign之后

内容成功显示

我们先点击一下其他页面,再点回来

成功被触发了,name和message均成功。

(2)Medium等级

设置Medium等级

对message变量的处理:

strip_tags()函数。去除标签,包括html,xml,php标签。

htmlspecialchars()函数。前面谈到过,对html中一些预定义字符进行实体化,包括&,',",<,>。,看下name参数的处理。只是对输入数据过滤了“<script>”字符串。(替换为空)

通过前面我们的绕过姿势,应该没什么问题了吧。基本的两种方法:1.调整大小写;2.复写。

(3)High等级

img注入:<img src=1 οnerrοr=alert("high") />

数据输入过程中,Name只能输入10个字符,在Name输入框旁边,右键检查。找到限制属性maxlength,直接右键Edit attribute,改成100.

继续注入,Name不再受限制了。

尝试img标签,输入<img src=x οnerrοr=alert(1)>,成功的弹窗。src属性指定了要显示的图像的路径。然后,onerror事件被绑定到了alert("high")这个Javascript函数,当图像加载失败时,会触发这个事件并执行alert函数来显示一个弹窗。

(4)impossible等级

查看源码

对name进行和message同样的处理在update database阶段还进行了预处理连先前high等级注入的XSS,也被实体化后显示了出来

二、Kali Linux对DVWACSRF模块

1、low等级

分析

首先分析一下服务器的核心源码

GET方式得到三个参数,change、password_new、password_conf。如果password_new和password_conf相同,那么更新数据库,并没有任何防CSRF的措施。这里我们有多重攻击方式,比如直接构造链接、构造短链接和构造攻击页面。

< img src="http://192.168.241.133/DVWA/vulnerabilities/csrf/?password_new=test&password_conf=test&Change=Change#" border="0" style="display:none;"/>

<h1>404<h1>

<h2>file not found.<h2>

当受害者正在使用自己的网站(浏览器中还保存着session值)时,访问攻击者诱惑点击的此链接:

http://www.hack.com/test.html

误认为是自己点击的是一个失效的url:

但实际上已经遭受了CSRF攻击,密码已经被修改为test。

密码修改

在修改密码时获取url链接

在url链接进行密码修改

密码修改成功

使用CSRF.html文件进行修改密码

在window10编辑html文件,并存放进php文件。

在网页打开点开编辑好的html,点击Click Me。

修改成功

2、medium等级

使用html文件进行修改

在网页打开点开编辑好的html,点击Click Me。

修改成功

使用burpsuite抓包

打开开关

抓包

手工输入Referer:

修改成功

  1. High等级

查看源码

可以看出请求中多了token参数。由于每次访问token均会刷新,所以请求伪造时不能将请求参数写死。

方法一:

此时,攻击者可能会从以下两步进行攻击:

(1)先想构造一个网页。这个网页能获取本地浏览器中的token信息,然后将给信息拼接到所构造请求的参数中,最后在提交完整的请求报文。假设攻击者通过文件上传等漏洞将含有恶意代码的文件存放到服务器根目录下,文件名为CSRF.php。

(2)在利用存储型XSS漏洞引诱受害者点击激活上述网页。

步骤一:XSS漏洞利用

采用逆推的思路,方便验证每一步是否成功,因此实验进行过程中应先对XSS漏洞进行实验,确保该漏洞能被成功利用,就像Medium难度一样。

利用攻击者账号登录靶场,进入存储型XSS漏洞页面,按F12修改name参数允许输入长度,然后在将name参数输入是<a href="https://192.168.241.133/CSRF.html">webanquan</a>,message输入yep,并点击Sign。

步骤二:构造网页

设攻击者通过文件上传等漏洞将含有恶意代码的文件存放到服务器根目录下,文件名为CSRF.php,文件内容如下

靶机浏览器登录管理员账户,切换到存储型漏洞环境中,可以看到有该链接可以点,受害者点击该链接,跳转界面。

密码被修改

方法二:

抓包获取信息

获取user_token

下载插件脚本

使用获取信息

修改密码并send

查看Response显示修改成功

4.impossible等级

Impossible等级是一种非常重要的安全等级评估机制,它主要用于评估给定的某种信息系统或计算机是否具备足够的保护能力去抵抗or 阻止黑客的攻击和入侵。它是一种基于信息安全等级的机制,可以用于评估一个特定的信息系统或计算机是否具备足够的安全可靠性,以抵抗攻击和入侵。它将信息安全评估动机分为5个层次,分别为Impossible、 Extremely High、High、Medium、Low。

Impossible等级的机制主要包括以下几个部分:

1、首先,要对给定的某个特定的信息系统或计算机进行安全等级评估,以便发现可能存在的形形色色的漏洞。

2、然后,要尽可能快速地修复发现的这些漏洞,以确保系统的安全性能。可以采用安全补丁、增强安全功能等方式来进行修复。

3、最后,要采取有效的防御方法,避免系统受到攻击和入侵,比如建立访问控制机制,或采用入侵检测和防御技术等。

Impossible等级机制的修复和防御方法还可以包括:

1、应用密码管理。用户应该定期更改登录和数据库系统的密码,并确保密码强度足够。

2、应用访问控制机制,以限制对系统中的数据和应用的访问,以及对系统的配置和变更。

3、应用可信的入侵检测和防御技术,实时监测系统内的活动,及时发现可疑行为并采取相应的应对措施。

4、应用安全审计等机制,及时发现系统中存在的安全漏洞,并及时采取措施进行修复。

5、对数据库系统的变更要进行严格的审核,确保安全变更后的系统功能可用性。

通过以上几项策略,可以有效地帮助信息系统管理者提升系统的安全性能,充分保障系统安全可靠性,有效地防止黑客的攻击和入侵。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PS启动提示Adobe Creative Cloud丢失或损坏。您可以尝试修复来解决这个问题,如何解决

一般为找到这个路径下C:\Program Files (x86)\Common Files\Adobe\Adobe Desktop Common\ADS的Adobe Desktop Service.exe文件。如果不在C盘也可以直接搜索其他盘找到此文件。 直接删除此文件即可解决&#xff0c;如果删除不了可以进任务管理器先结束进程再删除。鼠标右键结束任…

DolphinScheduler安装教程

DolphinScheduler安装教程 前期准备工作 jdk 1.8mysql 5zookeeper 3.4.6hadoop 2.6psmisc yum -y install psmisc 解压安装包 # 将安装包apache-dolphinscheduler-2.0.8-bin.tar.gz放置/opt/download目录下 # 解压缩 tar -zxvf apache-dolphinscheduler-2.0.8-bin.tar.gz -C …

看准JS逆向案例:webpack逆向解析

&#x1f50d; 逆向思路与步骤 抓包分析与参数定位 首先&#xff0c;我们通过抓包工具对看准网的请求进行分析。 发现请求中包含加密的参数b和kiv。 为了分析这些加密参数&#xff0c;我们需要进一步定位JS加密代码的位置。 扣取JS加密代码 定位到JS代码中的加密实现后&a…

PGSQL学习-基础表结构

1 访问数据库 创建好数据库后&#xff0c;你可以有三种方式访问数据库 运行PostgreSQL的交互式终端程序&#xff0c;它被称为psql&#xff0c; 它允许你交互地输入、编辑和执行SQL命令。 使用一种已有的图形化前端工具&#xff0c;比如pgAdmin或者带ODBC或JDBC支持的办公套件…

红人点集登录逆向+接口逆向:SHA256算法和Webpack反爬

&#x1f50d; 引言 红人点集采取了一系列加密和限制措施&#xff0c;主要是对于参数加密和登录token加密。今天利用Python与JavaScript逆向工程技术&#xff0c;实现逆向登录然后请求接口获取数据。 &#x1f50d; 思路与步骤详解 &#x1f527; 解密登录接口参数&#xf…

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法

【k8s故障处理篇】calico-kube-controllers状态为“ImagePullBackOff”解决办法 一、环境介绍1.1 本次环境规划1.2 kubernetes简介1.3 kubernetes特点二、本次实践介绍2.1 本次实践介绍2.2 报错场景三、查看报错日志3.1 查看pod描述信息3.2 查看pod日志四、报错分析五、故障处理…

机器学习·概率论基础

概率论 概率基础 这部分太简单&#xff0c;直接略过 条件概率 独立性 独立事件A和B的交集如下 非独立事件 非独立事件A和B的交集如下 贝叶斯定理 先验 事件 后验 在概率论和统计学中&#xff0c;先验概率和后验概率是贝叶斯统计的核心概念 简单来说后验概率就是结合了先验概…

如何将mp4格式的视频压缩更小 mp4格式视频怎么压缩最小 工具软件分享

在数字化时代&#xff0c;视频内容成为信息传播的重要载体。然而&#xff0c;高清晰度的视频往往意味着较大的文件体积&#xff0c;这给存储和分享带来了一定的困扰。MP4格式作为目前最流行的视频格式之一&#xff0c;其压缩方法尤为重要。下面&#xff0c;我将为大家详细介绍如…

浏览器渲染揭秘:从加载到显示的全过程;浏览器工作原理与详细流程

目录 浏览器工作原理与流程 一、渲染开始时间点 二、渲染主线程的渲染流程 2.1、渲染流程总览 2.2、渲染具体步骤 ①解析html-Parse HTML ②样式计算-Recalculate Style ③布局-Layout ④分层-Layer 相关拓展 ⑤绘制-Paint ⑥分块-Tiling ⑦光栅化-Raster ⑧画-D…

Python爬虫 instagram API获取instagram帖子数据信息

这个instagram接口可以通过url链接直接获取相关帖子信息。如有需求&#xff0c;可点击文末链接联系我们。 详细采集页面 https://www.instagram.com/p/CqIbCzYMi5C/ 请求参数 返回示例 { "__typename": "GraphSidecar", "accessibility_caption&qu…

Python和MATLAB网络尺度结构和幂律度大型图生成式模型算法

&#x1f3af;要点 &#x1f3af;算法随机图模型数学概率 | &#x1f3af;图预期度序列数学定义 | &#x1f3af;生成具有任意指数的大型幂律网络&#xff0c;数学计算幂律指数和平均度 | &#x1f3af;随机图分析中巨型连接分量数学理论和推论 | &#x1f3af;生成式多层网络…

购物车案例(源码分享)

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 非常期待和您一起在这个小…

排序算法与复杂度介绍

1. 排序算法 1.1 排序算法介绍 排序也成排序算法&#xff08;Sort Algorithm&#xff09;&#xff0c;排序是将一组数据&#xff0c;依照指定的顺序进行排序的过程 1.2 排序的分类 1、内部排序&#xff1a; 指将需要处理的所有数据都加载到**内部存储器&#xff08;内存&am…

android13禁用某个usb设备

总纲 android13 rom 开发总纲说明 目录 1.前言 2.触摸设备查看 3.功能修改 3.1 禁用usb触摸 3.2 禁用usb键盘 3.3 禁用usb遥感 4.查看生效与否 5.彩蛋 1.前言 用户想要禁止使用某些usb设备,需要系统不能使用相关的usb设备,例如usb触摸屏,usb键盘,usb遥感等等usb…

Python零基础快速入门!

“人生苦短&#xff0c;我学python”是编程届的名言。用python写小脚本的便捷性&#xff0c;让很多其他语言的学习者把python当作辅助语言。拥有了某一个语言的功底&#xff0c;再来学习另外一种语言应该是十分快速的。编程理念都十分相似&#xff0c;只是看看语言的差异性。带…

Python函数的介绍;变量的作用域;递归函数

一、函数的创建和调用 1.1、什么是函数 函数就是执行特定任和以完成特定功能的一段代码 1.2、为什么需要函数 复用代码 隐藏实现细节 提高可维护性 提高可读性便于调试 1.3、函数的创建 def 函数名(输入函数)函数体(return XXX) 1.4、函数的调用 函数名 (实际参数) 二、…

当当网数据采集:Scrapy框架的异步处理能力

在互联网数据采集领域&#xff0c;Scrapy框架以其强大的异步处理能力而著称。Scrapy利用了Python的异步网络请求库&#xff0c;如twisted&#xff0c;来实现高效的并发数据采集。本文将深入探讨Scrapy框架的异步处理能力&#xff0c;并展示如何在当当网数据采集项目中应用这一能…

用Java手写jvm之实现java -version的效果

写在前面 源码 。 本文来用纯纯的Java代码来实现java -version的效果&#xff0c;就像下面这样&#xff1a; 1&#xff1a;程序 这里输出类似这样的&#xff1a; java version "9" Java(TM) SE Runtime Environment (build 9181) Java HotSpot(TM) 64-Bit Serve…

[保姆级教程]uniapp安装使用uViewUI教程

文章目录 创建 UniApp 项目下载uView UI下载安装方式步骤 1: 安装 uView UI步骤 2: 查看uView UI是否下载成功步骤 3: 引入 uView 主 JS 库步骤 4: 引入 uView 的全局 SCSS 主题文件步骤 5: 引入 uView 基础样式步骤 6: 配置 easycom 组件模式注意事项 NPM方式步骤 1: 安装 uVi…

websocket状态机

websocket突破了HTTP协议单向性的缺陷&#xff0c;基于HTTP协议构建了双向通信的通道&#xff0c;使服务端可以主动推送数据到前端&#xff0c;解决了前端不断轮询后台才能获取后端数据的问题&#xff0c;所以在小程序和H5应用中被广泛使用。本文主要集合报文分析对于websocket…