莫张周刘王 发表于 2023-3-21 19:51:06

DVWA-XSS(DOM)

漏洞详解。
DOM XSS(Cross-site scripting)是一种Web安全漏洞,它利用了浏览器的DOM(文档对象模型)解析机制,通过注入恶意代码来攻击用户。
DOM XSS与传统的反射型或存储型XSS有所不同。在传统的XSS攻击中,攻击者通常在网页的URL或表单字段中注入恶意代码,用户访问网页时恶意代码就会被执行。而在DOM XSS攻击中,恶意代码被注入到网页的DOM中,当用户与网页交互时,恶意代码就会被执行。
DOM XSS攻击的危害可能比传统的XSS攻击更加严重,因为它不需要将恶意脚本传递给服务器,因此很难检测和防止。攻击者可以利用DOM XSS来窃取用户的敏感信息、执行钓鱼攻击、劫持用户会话等。
DOM XSS漏洞的原因在于,浏览器在解析HTML和JavaScript时,将HTML和JavaScript混合在一起处理,因此恶意代码可以通过修改DOM节点或属性来注入到网页中。攻击者可以通过各种方式来实现DOM XSS攻击,例如修改URL参数、修改表单数据、使用可编辑的HTML元素等。
下面将演示一个DOM的操作实例:
<!DOCTYPE html>
<html>
<head>
<title>DOM示例</title>
</head>
<body>
<h1 id="title">Hello, World!</h1>
<p>This is a paragraph.</p>
</body>
</html>
JavaScript代码:

// 获取标题元素
var titleElement = document.getElementById("title");

// 修改标题文本
titleElement.innerHTML = "Hello, DOM!";

// 创建一个新段落元素
var newParagraph = document.createElement("p");
newParagraph.innerHTML = "This is a new paragraph.";

// 将新元素插入文档
document.body.appendChild(newParagraph);这段代码首先获取具有ID“title”的元素,并使用innerHTML属性将该元素的文本内容更改为“Hello,DOM!”然后,它创建一个新的段落元素,并使用createElement()方法和innerHTML属性将新元素的文本内容设置为“This is a new paragraph.”最后,它使用appendChild()方法将新元素添加到文档中。
下面我们将对四个等级的代码分别进行分析。
LOW:
代码审计:
Unknown Vulnerability Source
vulnerabilities/xss_d/source/low.php
<?php

# No protections, anything goes

?>发现没有任何信息,直接查看网页源代码(这里截取的是我们要分析的部分)。
      <form name="XSS" method="GET">
            <select name="default">
               
            </select>这段代码是一个HTML表单,其中包含一个下拉菜单(元素),名为default,并使用GET方法提交数据。当页面URL中存在default=参数时,该参数的值将被添加到下拉菜单中作为默认选项。
下拉菜单的选项内容由JavaScript代码动态生成。如果URL中存在default=参数,JavaScript将读取该参数的值并将其添加到下拉菜单中作为第一个选项。如果没有该参数,JavaScript将添加默认的四个选项:English、French、Spanish和German。
这里漏洞的产生,是因为JavaScript代码使用了document.write方法来将HTML代码动态写入到页面中。document.write()是一个JavaScript方法,它可以将文本、HTML代码或JavaScript代码写入到文档中。这里他没有对用户的输入做任何的过滤和验证。
漏洞利用:
http://127.0.0.1/DVWA-master/DVWA-master/vulnerabilities/xss_d/?default=在利用漏洞时我们只要在url中直接构建即可。
Medium:
代码审计:
Unknown Vulnerability Sourcevulnerabilities/xss_d/source/medium.php
页: [1]
查看完整版本: DVWA-XSS(DOM)