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

声明:

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

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

环境:

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

一、概述

javascript伪协议触发漏洞。

二、javascript伪协议和a标签

        将javascript代码添加到客户端的方法是把它放置在伪协议说明符javascript:后的URL中。这个特殊的协议类型声明了URL的主体是任意的javascript代码,它由javascript的解释器运行。如果javascript:URL中的javascript代码含有多个语句,必须使用分号将这些语句分隔开

javascript:var now = new Date(); "<h1>The time is:</h1>" + now;

javascript URL还可以含有只执行动作,但不返回值的javascript语句。

javascript:alert("hello world!")

<a>标签定义超链接,用于页面间跳转或页面内跳转

<a>元素最重要的属性是href属性,它指定链接的目标。在所有浏览器中,链接的默认外观如下:

  • 未被访问的链接带有下划线而且是蓝色的
  • 已被访问的链接带有下划线而且是紫色的
  • 活动链接带有下划线而且是红色的

三、XSS探测过程

1. 正常的数据提交

提交数据123abc,数据出现在a标签内容和a标签的href属性。 

2. 代码审查

通过审计代码,我们首先尝试闭合标签。

"> <script>alert(1);</script>

发现,由于提交的数据同时出现在href和文本中很难构造合适的Payload

我们使用javascript伪协议进行XSS。

javascript:alert(1);

点击a标签,由于使用javascript伪协议,会使用javascript解释器执行href内的代码。

3. 构造Payload

javascript:alert(document.domain);

成功执行JS,触发XSS。

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值