Portswigger web security academy:DOM-based vulnerabilities


DOM-based vulnerabilities

目录
  • DOM-based vulnerabilities
    • 1 - DOM XSS using web messages
    • 2 - DOM XSS using web messages and a JavaScript URL
    • 3 - DOM XSS using web messages and JSON.parse
    • 4 - DOM-based open redirection
    • 5 - DOM-based cookie manipulation
    • 6 - Exploiting DOM clobbering to enable XSS
    • 7 - Clobbering DOM attributes to bypass HTML filters

材料里没列完,直接做题吧

1 - DOM XSS using web messages

  • 题目描述

    • 这个lab有一个简单的web-message漏洞
  • 要求

    • 利用exploit server给网站发送一个信息,使其执行alert(document.cookie)
  • 解题过程

    • 查看源码,发现如下代码

      window.addEventListener('message', function(e) {
      	document.getElementById('ads').innerHTML = e.data;
      })
      
    • 去MDN看了下web message,是一个跨源通信的函数,可以通过iframe来实现这个功能

    • 构造exp

      • 先尝试了用iframe+script标签的形式,但是发现script标签不会等iframe加载完,所以放进了iframe
      • postMessage()的第二个参数使用通配符,允许目标站点为任意域(防止CORS被阻止)
      • 关于post进去的数据也进行了尝试(chrome),svg,script都不行,想了一下应该与标签的解析流有关(插入的标签没有被解析),这里用img