dvwa靶场xss通关

原理

        XSS漏洞是攻击者将恶意代码注入到合法网页中,当用户浏览该页面时,恶意代码会被执行,从而获取用户敏感信息或进行其他攻击。

形成原因

        网站对用户输入数据的过滤不严格或不完备,攻击者可以根据这个漏洞向网站提交恶意代码,然后再将这些代码传播给其他用户,从而造成危害。

防御措施

  • 输入过滤:在网站接收用户输入数据之前,需要对输入数据进行过滤。例如,可以使用编码标记来过滤HTML、JavaScript和CSS等标记语言。
  • 输出编码:对于显示在页面上的输入内容,需要进行输出编码,以避免JavaScript脚本的注入攻击。例如,可以使用Escape函数或EncodeURIComponent函数来对特殊字符进行编码。
  • cookie安全:通过对Cookie的设置来限制客户端对Cookie的读取和修改。例如,使用HttpOnly标志可以禁止脚本访问Cookie,从而有效降低攻击的风险。
  • 安全编程:开发人员应该牢记安全编程的原则,例如使用白名单验证策略、禁止直接操作DOM等规则,以避免开发过程中出现安全漏洞。

突破方式

  • 利用漏洞:攻击者使用已知的或未公开的漏洞来突破网站的XSS防御措施,从而成功注入恶意脚本。
  • 钓鱼式攻击(Phishing):攻击者通过伪造合法的邮件、网站、电话等方式引诱用户主动点击链接进入钓鱼网站,并注入恶意脚本,从而突破XSS防御系统。
  • 反射型XSS攻击:攻击者向目标网站提交恶意脚本,然后将脚本放在URL中传递给受害用户,当用户访问这个URL时,恶意脚本就会被执行,攻击成功。
  • 存储型XSS攻击:攻击者将恶意脚本存储到目标网站的数据库中,在用户访问受影响的页面时,恶意脚本会从服务器端传递给用户并在用户浏览器上执行。—辗转相除法。(本质上Base64编码是64进制,Base58编码是58进制)

        下面我们给出dvwa靶场的通关操作【其中前提为已经搭建好攻防环境,可以参考:DVWA靶场搭建

靶场通关

1、XSS Reflected反射型

        Medium中等

源代码如上所示,这里很明显看得出来,是对script字符进行了过滤,使用str_replace()函数将输入中的script替换成为空,于是需要我们想办法绕过过滤字符。

第一种,多写绕过,代码如下所示:

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

第二种,大小写绕过,代码如下:

<ScRipt>alert(/xss/)</ScRipt>

        High模式

针对特殊符号,均有过滤,使得双写绕过以及大小写混淆绕过失效。(正则表达式中的i表示不区分大小写)。

script标签失效,但是可以通过img、body等标签的事件或者iframe等标签的src注入恶意的js代码。

绕过1:img标签转换后的XSS PAYLOAD,<img src = 1 onerror = alert(/xss/)>

并且成功后会显示一个图片的形式。

其余方式:

<img src=1 οnerrοr=eval("\x61\x6c\x65\x72\x74\x28\x27\x78\x73\x73\x27\x29")></img>

<img src=1 οnerrοr=eval(String.fromCharCode(97,108,101,114,116,40,34,120,115,115,34,41))></img>

<imgsrc=1 οnerrοr=eval("\u0061\u006c\u0065\u0072\u0074\u0028\u0027\u0078\u0073\u0073\u0027\u0029")></img>

方式2:data url进行xss

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

其中的“PHNjcmlwdD5hbGVydCgneHNzJyk8L3NjcmlwdD4=”就等同于“<script>alert('xss')</script>”

2、XSS Store模式

        Medium格式

strip_tags()函数剥去字符串中的HTML、XML以及PHP的标签,但允许使用<b>标签。

addslashes()函数返回在预定义字符(单引号、双引号、反斜杠、NULL)之前添加反斜杠的字符串。

并且message参数使用了htmlspecialchars函数进行编码,因此无法再通过message参数注入XSS代码,但是对于name参数,只是简单过滤了<script>,仍然存在存储型的XSS。

name框限制了输入长度,解决方式为修改maxlength的大小。

绕过方式,类似于反射型XSS,1.双写绕过。2.大小写混淆绕过。3.使用非script标签的xss payload。

所以这里先修改name的最大长度,之后可以在name处注入xss攻击代码。

High模式

虽然使用正则表达式过滤了<script>标签,但是却忽略了img、iframe等其它危险的标签,因此name参数依旧存在存储型XSS,操作类似于反射型XSS的high

3、DOM 型XSS

        Medium

从代码中可以看到,对<script>进行了过滤,并且将default的值设置为English。这里的script还设置了大小写绕过。

可以使用img标签来进行绕过。这里需要把option标签进行闭合才能发出。前面的low是利用设置default的值,把值进行url解码,然后在option标签中显示。而option标签中是不允许存在img图片标签的,所有需要闭合标签后才能触发。

我们可以直接注入标签将 cookie 显示出来。HTML 的 < img > 标签定义 HTML 页面中的图像,该标签支持 onerror 事件,在装载文档或图像的过程中如果发生了错误就会触发。使用这些内容构造出 payload 如下:

English</option></select><img src = 1 onerror = alert(document.cookie)>

方式2:“#”在PHP中,“#”后边是不接受的所以这里也可以绕过。

        High模式

default变量中的值,只允许FrenchEnglishGermanSpanish中的一种才行,否则就会跳转结束运行。

这里的攻击方式和Medium相同。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

常用git 打tag命令

1.查看所有tag git tag 2.创建 v5.0.0的tag git tag v5.0.0 git tag &#xff08;创建后查看&#xff09; 3.推送到远程tag git push origin v5.0.0 4.删除远程tag git push origin --delete v5.0.0 5.删除本地tag git tag -d v5.0.0 6.添加带有备注信息的tag git tag v5.…

【Redis】Redis 实现分布式Session

Cookie 保存在客户端浏览器中&#xff0c;而 Session 保存在服务器上。客户端浏览器访问服务器的时候&#xff0c;服务器把客户端信息以某种形式记录在服务器上&#xff0c;这就是 Session。客户端浏览器再次访问时只需要从该 Session 中查找该客户的状态就可以了。 在实际工作…

护眼灯有效果吗怎么样?推荐五款值得入手的护眼台灯

随着护眼台灯被越来越多的人解锁新的护眼攻略&#xff0c;它的产品热度也越来越高&#xff0c;而且光线柔和&#xff0c;是一款非常不错的照明用具。但是也有不少用户反馈买到的护眼台灯效果不好&#xff0c;有时候还会觉得刺眼&#xff0c;有些不合格的台灯使用时间一久还会散…

Vue3_2024_3天【Vue3组合式API~响应式及toRefs】

第一&#xff1a;vue3 中可以两个script标签 第一个&#xff1a;声明组件名 第二个&#xff1a;setup语法糖&#xff08;默认 lang语言是js语言&#xff0c;修改语言须保持一致&#xff09; 若想去掉一个script标签&#xff08;声明组件名称&#xff09;&#xff0c;则可使用插…

前端- 基础 表单标签 - 使用场景及组成

大家都有到银行去办理业务的时候&#xff0c;大多数情况下会填一些 纸质的表之类的东西如下图 而我们在网页中也会经常遇到 像现实生活中在银行填表那样的情景&#xff0c;如下图 &#xff1a; 上示就是 网页中的表单的使用场景了 表单标签 &#xff1a; 为什么需要表单 …

GIS开发应用于哪些领域?就业方向有哪些?分别需要什么技能?

本文适用于GIS专业相关的大二、大三、大四的同学以及部分在职GIS工作者。在这里你将看到&#xff1a; 1、GIS领域可以从事的岗位有哪些&#xff0c;分别需要什么技能&#xff1f; 2、如何选择最合适自己的发展方向&#xff1f; 一、地理信息行业岗位简述 ▶ 上游数据部分 …

Python CGI编程

文章目录 什么是CGICGI架构Web服务器支持及配置CGI程序示例CGI环境变量GET和POST方法GET方法POST方法区别注意事项 使用POST方法传递数据1. 创建HTML表单2. 编写CGI脚本3. 配置服务器4. 提交表单5. 服务器处理请求注意事项 通过CGI程序传递checkbox数据创建HTML表单编写CGI脚本…

EMO: Emote Portrait Alive - 阿里HumanAIGC

EMO: Emote Portrait Alive - 阿里HumanAIGC 最近这一个星期&#xff0c;也就是2月28日的时候&#xff0c;阿里巴巴的HumanAIGC团队发布了一款全新的生成式AI模型EMO&#xff08;Emote Portrait Alive&#xff09;。EMO仅需一张人物肖像照片和音频&#xff0c;就可以让照片中的…

抖音视频评论采集工具|短视频批量下载软件

《抖音视频评论采集工具——解放双手的智能助手》 在数字化时代&#xff0c;抖音视频已成为人们获取信息、娱乐放松的重要来源之一。针对抖音视频评论的采集需求&#xff0c;我们推出了一款功能强大的软件&#xff0c;让您轻松实现评论批量提取&#xff0c;QQ:290615413提高工作…

mirthConnect忽略HTTPS SSL验证

mirthConnect SSL忽略验证 1、下载https网站证书 点击不安全---->证书无效 2、查看mirth 秘钥库口令 在mirthConnect 的conf目录下面keystore.storepass 3、导入证书到本地 在jdk的bin目录下面执行 keytool -importcert -file "下载的网站证书路径" -keysto…

win11修改网络算法为BBR2_提升网络环境质量

Win11 BBR2 是Google开发的一种高效的网络拥塞控制算法&#xff0c;玩 Linux 的朋友应该对它还有锐速不陌生。相比Windows默认使用的 CUBIC 算法&#xff0c;BBR2 在网络吞吐量、延迟、全局性能等方面都有一定优势。 如果你日常网络经常丢包或者高延迟可以尝试切换为BBR2算法。…

基于SpringBoot的在线拍卖系统(附项目源码+论文)

摘要 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单管理、留言板管理、系统管理&#xff0c;用户&#xff1b;首页、个人中心、历史竞拍管理、竞拍订单管理、留言板管理&#xff0…

Nucleic Acids Research | scATAC-seq+CUTTag探究关键转录因子对视网膜细胞分化的调控作用

在中枢神经系统发育过程中&#xff0c;多能神经祖细胞如何产生不同的神经细胞类型仍然知之甚少。最近的scRNA-seq研究已经描绘了包括神经视网膜在内的许多神经系统中单个神经细胞类型的发育轨迹。进一步了解神经细胞多样性的形成需要了解表观遗传景观如何沿着个体细胞谱系变化以…

智慧草莓基地:Java与SpringBoot的技术革新

✍✍计算机毕业编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java、…

EthSign联合创始人 POTTER LI 确认出席Hack .Summit() 香港区块链开发者大会!

thSign联合创始人 POTTER LI确认将出席由 Hack VC 主办&#xff0c;并由 AltLayer 和 Berachain 联合主办&#xff0c;与 SNZ 和数码港合作&#xff0c;由 Techub News 承办的Hack.Summit() 2024区块链开发者盛会。 Potter Li&#xff0c;南加州大学应有数学系&#xff0c;南加…

数字化转型导师坚鹏:金融机构数字化转型情况、政策及法规解读

金融机构数字化转型总体情况、政策及法规解读 课程背景&#xff1a; 很多学员存在以下问题&#xff1a; 不知道金融机构数字化转型总体情况&#xff1f; 不清楚金融机构数字化转型相关政策&#xff1f; 不知道金融机构数字化转型相关法规&#xff1f; 课程特色&#xf…

人工智能_大模型013_AIGC生成式模型的增强检索_RAG知识补充检索_补充私域和实时场景知识_关键字检索增强---人工智能工作笔记0149

什么是RAG,RAG的意思就是,如果一套生成式AIGC大模型,你昨天训练了以后,那么今天的知识,还没有给他进行训练,那么回答的时候,他就会遗漏今天的知识,那么我们就可以通过检索的手段,把今天的知识,检索出来,然后补充道prompt中,给这个大模型.让他参考,这样就包含了今天的知识相当于…

【Java EE初阶二十八】简单的博客系统

1. 博客系统的基本情况 1.1 四个页面 1.博客列表页&#xff1a;显示出当前网站上都有哪些博客 2.博客详情页&#xff1a;点击列表上的某个博客,就能进入对应详情页,(显示出博客的具体内容) 3.博客编辑页&#xff1a;让用户编写博客内容,并且发送到服务器 4. 博客系统登录页 总…

Eclipse也可以轻松创建JSP动态Web项目 绿色、免费、神器、就是好用一大截!

&#x1f680; 个人主页 极客小俊 ✍&#x1f3fb; 作者简介&#xff1a;web开发者、设计师、技术分享博主 &#x1f40b; 希望大家多多支持一下, 我们一起学习和进步&#xff01;&#x1f604; &#x1f3c5; 如果文章对你有帮助的话&#xff0c;欢迎评论 &#x1f4ac;点赞&a…

STM32CubeMX PID差速循迹小车

在之前TB6612驱动中&#xff0c;主要实现了固定速度下小车的循迹&#xff0c;在车身偏转使用默认的速度进行纠偏&#xff0c;使车身恢复正常状态。接线图和之前TB6612一样STM32Cubemx TB6612直流电机驱动-CSDN博客。 今天要做的是&#xff0c;两路循迹判断车身偏的情况下&…