XSS
XSS(Cross Site Scripting)缩写为css,但这会与层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。因此将跨站脚本攻击缩写为XSS
跨站脚本攻击(XSS),是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。
攻击者可以使用户在浏览器中执行其预定义的恶意脚本,其导致的危害可想而知,如劫持用户会话,插入恶意内容、重定向用户、使用恶意软件劫持用户浏览器、繁殖XSS蠕虫,甚至破坏网站、修改路由器配置信息等。
主要分为三种类型:
-
反射型
-
存储型
-
DOM型
XSS危害
-
-
盗取账户
-
恶意软件下载
-
键盘记录
反射型XSS
应用程序或API包括未经验证和未经转义的用户输入,直接作为HTML输出的一部分。一个成功的攻击可以让攻击者在受害者的浏览器中执行任意的HTML和Javascript。
特定:非持久化,必须用户点击带有特定参数的链接才能触发。 影响范围:仅执行脚本的用户。
<script>alert("xss")</script>
<script>alert("点击此处修复");location.href="https://www.baidu.com"</script>
<script>alert(document.cookie)</script>
</p><script>alert("xss")</script><p>
反射型xss的限制与防御
-
-
多为一次点击触发一次
对陌生的链接,不要随意点开
存储型XSS
存储型XSS是指应用程序通过web请求获取不可信赖的数据,在未检验数据是否存在xss代码的情况下,便将其存入数据库。当下一次从数据库中获取该数据时程序也为对其进行过滤,页面再次执行xss代码,存储型xss可以持续攻击用户。
存储型XSS出现位置
-
留言板
-
评论区
-
博客
http://192.168.26.146:3000/ui/authentication
beef/admin
DOM型XSS
DOM型XSS其实是一种特殊类型的反射型XSS,通过JS操作DOM树动态地输出数据到页面,而不依赖将数据提交给服务器端,它是基于DOM文档对象模型的一种漏洞。
<html>
<body>
<script>
document.write("<script>alert(0)<\/script>");
</script>
</body>
</html>
http://192.168.26.129:81/vulnerabilities/xss_d/?default=<script>alert("xss")</script>
与反射型XSS的异同点和危害
-
同: 都是没有控制好输入,并且把JavaScript脚本输入作为输出插入到HTML页面。
-
异: 反射型XSS是经过后端语言后,页面音乐后端输出生效。DOM XSS是经过JS对DOM树直接操作后插入到页面。