一、获得Cookie发送邮件
1. 编写mail.js
- 目的: 创建一个JavaScript脚本,用于获取cookie并通过邮件发送。
- 代码实现:
- 创建一个图片元素 img,设置其宽度和高度为0,使其不可见。
- 将图片的 src 属性设置为指向 sendmail.php 的URL,并附带当前页面的cookie作为参数。
2. 编写sendmail.php
- 目的: 编写PHP脚本,接收JavaScript传来的cookie,并通过邮件发送。
- 代码实现:
- 使用PHPMailer组件发送邮件。
- 从GET请求中获取cookie。
- 配置邮件服务器(如SMTP服务器、端口、用户名、密码等)。
- 设置邮件内容并发送。
3. 修改PHP版本
- 注意: PHP版本必须为7,否则邮件发送功能无法正常工作。
- 修改方法: 在PHP集成环境(如phpstudy)中调整PHP版本。
4. 修改邮箱账号和授权码
- 目的: 配置邮件发送所需的邮箱账号和授权码。
- 配置内容:
- 发件人邮箱地址和授权码。
- 收件人邮箱地址(可与发件人相同)。
- 授权码获取: 登录邮箱账号,在账户设置中的POP3/SMTP服务中开启并获取授权码。
5. 注入脚本
- 目的: 将编写好的JavaScript脚本注入到目标网页中,以便获取cookie。
- 注入方式: 将脚本代码插入到网页的HTML中,通常通过XSS漏洞实现。
6. 生成Cookie
- 目的: 在目标域名下生成cookie,以便JavaScript脚本能够获取。
- 代码实现:
- 使用PHP的 setcookie 函数设置cookie。
- Cookie的名称为 name,值为用户名,并设置过期时间。
7. 查看Cookie
- 目的: 确认cookie已成功生成,并查看cookie的内容。
- 查看方式:
- 通过浏览器的开发者工具查看当前页面的cookie。
- 确认存在名为 name 的cookie,并检查其值是否正确。
- 结果: 成功获取到cookie,并通过邮件发送。邮件内容包含cookie信息,如 name:wuuuuyaaaa='s cookie'。
二、知识小结
|----------------|------------------------------------------|----------------------|-------|
| 知识点 | 核心内容 | 考试重点/易混淆点 | 难度系数 |
| JavaScript脚本注入 | 通过JavaScript脚本注入到网页,获取用户cookie | 如何制作并执行注入脚本 | ★★★☆☆ |
| Cookie获取与邮件发送 | 使用JavaScript获取cookie,并通过PHP mailer组件发送邮件 | PHP版本要求、邮箱授权码获取与配置 | ★★★★☆ |
| PHP版本调整 | 在PHP study集成环境中调整PHP版本至7 | PHP版本对邮件发送的影响 | ★★☆☆☆ |
| 邮箱授权码 | 在QQ邮箱中开启POP3/SMTP服务,获取授权码 | 授权码与QQ密码的区别及安全性 | ★★★☆☆ |
| 存储型XSS攻击 | 在网页中注入恶意脚本,当用户访问时执行 | 如何避免XSS攻击被过滤、确保脚本执行 | ★★★★☆ |
| Cookie生成与测试 | 手动设置cookie以测试XSS攻击效果 | 为什么需要手动设置cookie、如何设置 | ★★★☆☆ |
| 攻击效果验证 | 通过邮件接收情况验证XSS攻击是否成功 | 验证邮件内容、攻击是否如预期发生 | ★★★★☆ |
| |