[理论-学习]Web安全-XSS-基础07

声明:

由于笔者能力有限,难免出现各种错误和漏洞。全文仅作为个人笔记,仅供参考。

笔记内容来源于各类网课。

环境:

XSS Challenges Stage #3:http://xss-quiz.int21h.jp/ , Firefox浏览器,BurpSuite

一、概述

选择列表的XSS。

二、select和表单介绍

select元素可创建单选或多选菜单。

<select>元素中的<option>标签用于定义列表中的可用选项。

其中option标志中的文本表示展示的文本,option的value属性表示提交表单时的对应选择的值。

例如:

<option value='b'>a</option>

选项展示的内容时a,但是提交表单时的值为b。

HTML表单用于搜集不同类型的用户输入。

三、XSS探测过程

1. 正常的数据提交

输入数据123abc。查看到正常显示。

2. 代码审查

我们进行代码审计,这里是反射型XSS漏洞。其中数据被b标签和引号闭合,我们尝试一下闭合前面,插入脚本。

"</b>123abc

我们的数据依然别识别为文本,无法闭合标签。我们打开页面源代码。

可以看到我们的符号全部被转义,被识别为字符串,不能闭合标签。

我们分析一下网络请求。

发现我们提交后,页面发送了一个POST请求,参数1为我们输入数据,参数2为下拉框的数据。

我们查看下拉框的HTML代码。

发现没有value属性。由于option标签没有value属性,提交数据时,就默认提交option中间的文本。从刚才的正常数据返回中,可以看到除了显示我们自己提交的数据,还有下拉框的数据。我们是否可以换一个注入点,在option处注入。

我们修改option的选项内容,我们将Japan修改为JS脚本。

定位后,双击即可修改内容。

 发现,修改内容是不可行的,因为修改后,会被识别为JS代码

 那我们可以再option中增加value属性,那么提交时会提交我们的JS代码。

 我们再提交。JS代码成功插入,并且成功执行。

除了修改option属性value,我们还可以使用BurpSuite拦截包,将提交的p2参数修改为JS脚本

3. 构造Payload

我们使用BurpSuite进行拦截。

Japan"</b><script>alert(document.domain);</script>

 我们成功闭合了b标签,也插入了JS代码,并且执行成功。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值