一、获得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攻击是否成功 |
验证邮件内容、攻击是否如预期发生 |
★★★★☆ |