一、脚本侵入网页
1. 反射型XSS
- 前端界面: 提供一个输入框,用户输入内容后提交。
- 后端代码: 从POST请求中获取name字段的值,并直接通过echo输出。
- 演示: 输入JavaScript代码<script>alert(1)</script>并提交,弹窗显示成功执行,表明存在XSS漏洞。
2. get类型请求
- 前端代码: 通过URL参数获取值,并生成指向该值的超链接。
- 演示: 在URL中传入javascript:alert(/wuya/),点击生成的链接后弹窗,表明代码成功执行。
3. 跨站脚本攻击
- 定义: 恶意攻击者利用web页面的漏洞,插入恶意代码,当用户访问页面时,代码执行,达到攻击目的。
- 脚本类型: 包括JavaScript、Java、VBScript、ActiveX、Flash等。
4. 跨站脚本类型
1)反射型XSS
- 特点: 攻击发生需要用户每次将包含恶意脚本的链接发送给服务器,服务器响应后才会发生攻击。
- 流程: 恶意用户构造包含恶意脚本的链接 → 发送给服务器 → 服务器响应并返回给客户端 → 浏览器解析执行恶意代码。
2)存储型XSS
- 特点: 恶意脚本保存在服务器,只要用户访问包含恶意脚本的内容,攻击就会发生,不需要重复发送。
- 流程:
- 恶意用户找到可保存内容到数据库的地方(如发文章、发回复等),将恶意代码保存到目标服务器。
- 其他用户访问该内容时,服务器将恶意代码发送给浏览器,浏览器解析执行,攻击发生。
- 影响范围: 较大,可影响普通用户及后台管理员,获取敏感信息如cookie等。
- 示例: 用户注册时,将恶意脚本<script>alert(1)</script>作为用户名保存到数据库,之后查询该用户时,恶意代码被执行,弹窗显示。
二、知识小结
知识点 |
核心内容 |
考试重点/易混淆点 |
难度系数 |
JavaScript脚本注入 |
学习如何将JavaScript脚本注入到网页并使其执行 |
如何找到并利用网页漏洞注入脚本 |
★★★☆☆ |
跨站脚本攻击(XSS) |
恶意攻击者利用网页漏洞插入恶意代码,用户访问或点击时代码执行 |
XSS的含义、类型(反射型、存储型)及攻击流程 |
★★★★☆ |
反射型XSS演示 |
通过POST和GET请求演示反射型XSS攻击 |
POST和GET请求下XSS攻击的实现方式 |
★★★☆☆ |
存储型XSS介绍 |
恶意代码保存在服务器,每次用户访问都会执行攻击 |
存储型XSS与反射型XSS的区别、存储型XSS的攻击流程 |
★★★★☆ |
存储型XSS演示 |
通过用户注册功能演示存储型XSS攻击 |
如何通过注册功能将恶意代码保存到服务器数据库 |
★★★★★ |
XSS防御措施 |
(文本中未直接提及,但为重要知识点) |
如何避免XSS攻击,如输入验证、输出编码等 |
★★★★☆ |
CSS与XSS的区别 |
解释为什么XSS的简写不是CSS,而是cross site script |
CSS(层叠样式表)与XSS(跨站脚本攻击)的不同 |
★★☆☆☆ |
XSS的广泛影响 |
XSS攻击不仅限于PHP网页,还包括JSP、VBScript等 |
XSS攻击的广泛性和多样性 |
★★★☆☆ |