<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<!DOCTYPE html>
<html>
<head>
<title>XSS_DOM</title>
</head>
<body>
<!--
本页面三个 DOM 类型的 XSS 漏洞实际执行过程是:
1、客户端发送请求
2、服务端返回
3、客户端执行js
-->
<p id="p">Hello, XSS_DOM</p>
<script>
var search = document.location.search;
var params = new URLSearchParams(search);
// 客户端访问 http://127.0.0.1:9999/xss.jsp?name=1,浏览器发送请求到服务器,服务器响应html,客户端执行js
var username = params.get('name');
if (username !== null) {
document.getElementById("p").innerHTML = 'Hello, ' + username + '!';
}
// Location 漏洞
// http://127.0.0.1:9999/xss.jsp?url=http://www.baidu.com
// http://127.0.0.1:9999/xss.jsp?url=javascript:alert(1)
// 客户端访问上面的路径,浏览器发送请求到服务器,服务器响应html,客户端执行js
var url = params.get('url');
if (url !== null) {
document.location = url;
}
// Execution 漏洞
// 客户端访问 http://127.0.0.1:9999/xss.jsp?x=alert(1),浏览器发送请求到服务器,服务器响应html,客户端执行js
var x = params.get('x');
eval(x);
</script>
</body>
</html>