XSS
基本概念
跨站脚本攻击(Cross Site Scripting),简称 XSS(避免和 CSS 冲突),原理是接受了恶意脚本(输入),并在客户端执行了该恶意脚本(输出)。
分类
反射型
URL 上包含恶意脚本代码,受害者打开该 URL,恶意脚本代码被执行。
比如:http://YOUR_IP_ADDRESS:8080/vulnerabilities/xss_r/?name=world<script>console.log('world')</script>#
name
上包含了恶意脚本代码,当打开该链接,会在控制台输出 world
:
除了用
<script>
,我们还可以利用事件,比如<img>
加载图片失败时触发onerror
事件。🌰 举例,
<img src=## onerror="alert(document.cookie)" />
,将用户的 cookie 显示出来:
存储型
反射型不会被存储下来,接下来我们来看存储型的:
我们在 XSS(Stored)菜单项,注册 name
为 zhangsan
,message
为 🤡 <script>console.log('hello world')</script>
的 Guestbook。
现在无论任何用户访问 XSS(Stored)菜单项,都会执行该恶意脚本代码:
DOM 型
反射型的一种, 在客户端直接执行 DOM。