XSS攻击

XSS攻击分为三种类型:

  • 存储型
  • 反射型
  • DOM 型

存储型:访问网站出发XSS。


黑客攻击流程

反射型:

访问携带XSS脚本的连接,触发XSS

原理解析:获取参数后 ,直至输出到客户端,触发xss

服务端代码:

@WebServlet(urlPatterns = "/xssServlet")
public class XSSServlcet extends HttpServlet {
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

		String name = req.getParameter("name");
		req.setAttribute("name", name);

		req.getRequestDispatcher("index.jsp").forward(req, resp);
	}

}

DOM型:

        访问携带XSS脚本的链接,触发XSS。特征和反射型一样,同样通过onerror触发。

js代码:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<script type="text/javascript" src="js/jquery.js"></script>
<script type="text/javascript" src="js/socket.js"></script>
<title>无标题文档</title>
</head>
<script language="javascript">

</script>
<body>
<table>
 errorMsg:<span id="errorMsg"></span>
</table>

<script>
window.onload = function(){
		var errorMsg  = location.hash.substring(1);
		document.getElementById('errorMsg').innerHTML = decodeURIComponent(errorMsg);
}

</script>
</body>
</html>


总结:

XSS类型 存储型 反射型 DOM型
触发过程

1.黑客构造XSS脚本

2.正常用户访问

正常用户范文携带XSS脚本的URL 正常用户访问携带XSS脚本的URL
数据存储 数据库 URL URL
谁来输出 后端WEB应用程序 后端WEB应用程序 前端JS
输出位置 HTTP响应中 HTTP响应中 动态构造的DOM节点

猜你喜欢

转载自blog.csdn.net/fd2025/article/details/80054099