在前段时间,我学习了XSS跨站脚本攻击,也做了一次实操找到了一个网页的反射型XSS漏洞,这篇学习笔记我将从原理,XSS类型,各类型区别,XSS弹框函数,XSS绕过以及XSS攻击防御这几个方面来讲解我的学习内容。
XSS原理:攻击者在web页面中嵌入恶意脚本代码(HTML,JavaScript),当用户访问包含恶意脚本的页面时,浏览器会自动执行其中的脚本代码,从而将用户的敏感信息(Cookie,密码等)发送给攻击者的服务器,从而进行恶意行为。
XSS类型:
一.存储型XSS:将恶意脚本代码存储到服务器端的数据库或文件中,当用户请求页面时,从数据库或文件中读取恶意脚本并在用户浏览器中执行。存储型危害较大,攻击者可以窃取用户的敏感信息并长期控制他人账号。
二.反射型XSS:将恶意脚本代码作为URL参数传递给Web服务器,然后服务器将参数值原封不动地返回给用户浏览器,再由浏览器执行恶意脚本。攻击范围较小,仅限于攻击者向特定受害者发送恶意链接的情况。
三.Dom型XSS:将恶意脚本代码注入到页面的Dom中,并由浏览器直接执行,不需要经过web服务器。该攻击方式较为隐蔽,攻击者可以通过修改页面URL或其他方式,来实现对受害者的攻击。
类型区别:
1.攻击载体不同:存储型XSS恶意脚本存在于服务器
反射型XSS恶意脚本随请求发送到服务器端
Dom型XSS恶意脚本直接注入到页面的Dom中
2.解析位置不同:存储型XSS脚本被解析的位置是服务器
反射型XSS脚本被解析的地方是浏览器(要联网)
Dom型XSS脚本被解析的地方是浏览器(不用联网)
3.允许输入点的不同:存储型XSS一般是留言或者用户存储数据的地方
反射型XSS一般是搜索框或者页面跳转的地方
Dom型XSS一般是在Dom位置上,不取决于输入环境
在挖SRC的时候,找到一家公司的网站中存在反射型URL,在搜索框中输入<ScRiPt>alert(1)</sCrPt>,可以将XSS嵌入页面代码中
XSS弹框函数:alert,prompt,onclick,confirm
XSS绕过:大小写混写绕过,图片URL绕过,编码绕过
XSS攻击防御:1.输入过滤,2.输出编码,3.使用HttpOnly Cookie