Cross-Site Scripting(XSS)
1. XSS介绍
跨站脚本攻击(Cross-Site Scripting)简称XSS,人们经常将跨站脚本攻击
(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆。因此,将跨站脚本攻击缩写为XSS。
XSS是一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。使用该攻击方式,攻击者(恶意用户)可以将代码注入到网页,其他用户在访问并且浏览该网站时就会受到影响。
该恶意代码主要为HTML代码,也可以是其他网页代码
2. XSS的危害
窃取用户敏感信息:
- 通过
document.cookie
获取用户会话Cookie,劫持账户。 - 会话劫持:
- 攻击者冒充用户执行操作(如转账、修改密码)。
- 钓鱼攻击:
- 伪造登录表单诱导用户输入账号密码。
- 键盘记录:
- 监听用户键盘输入,窃取密码等数据。
- 破坏页面内容:
- 篡改网页显示内容,传播虚假信息。
- 传播恶意软件:
- 通过加载外部脚本下载木马程序。
3. XSS原理
攻击者向具有XSSbug的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
xss攻击分为3种:反射型xss,存储型xss,DOM型xss。
4. XSS常见出现点
黑盒测试:
尽可能找到一切用户可控并且能够输出在页面代码中的地方,比如下面这些:
*URL的每一个参数
*URL本身*表单*搜索框--------------------
常见业务场景:
*重灾区:评论区、留言区、个人信息、订单信息等
*针对型:站内信、网页即时通讯、私信、意见反馈
*存在风险:搜索框、当前目录、图片属性等
4.1. XSS常见语句
常见XSS语句标签:<script>
<script>alert(1)</script>
常见XSS语句标签:<img>
<img src=x onerror=alert(/xss/)>
常见XSS语句标签:<input>
<input onclick=alert(3)>
常见XSS语句标签:<a>
<a href=javascript:alert('xss') > xss</a>
5. 反射型XSS
反射型xss又称非持久型xss,这种攻击方式是一次性的。
往往是需要用户点击该恶意链接才能攻击成功。又称非持久性xss。
以下仅是演示xss的一个例子,真正的可没有那么简单
5.1. 网站存在xss
- 该网站具有反射型漏洞,在任何具有输入的地方都可以进行尝试,
<script>alert(/xss/)</script>
这是一段HTML代码,我们将它输入到搜索框中
出现弹窗,alert函数具有弹窗功能
5.2. pikachu xss
靶场xss反射型实验
将<script>alert(/xss/)</script>
输入到查询框中,
发现输入不完整,应该是在前端做了长度限制,使用检查功能修改HTML代码即可。
修改2000,再输入
恢复
弹窗,显示xss