反射型XSS注入

反射型 XSS 漏洞实验报告

一、实验目的

  1. 理解反射型 XSS 漏洞的原理与形成原因。
  2. 掌握反射型 XSS 的测试方法Payload 构造
  3. 验证无过滤直接输出用户输入的安全风险。
  4. 学会查看网页源代码确认漏洞。

二、实验环境

  • 系统:Windows / Linux
  • Web 环境:PHP + Apache
  • 浏览器:Chrome / Firefox
  • 测试文件:xss1.html、xss1.php、xss_get.php

三、实验原理(超级重点)

✅ 反射型 XSS 是什么?

反射型 XSS = 非持久型 XSS 攻击者构造恶意链接 → 用户点击 → 服务器不过滤、不检查,直接把恶意代码 "反射" 回页面 → 浏览器执行代码 → 漏洞触发。

🚨 漏洞根本原因

用户输入未过滤 + 直接输出到 HTML 页面


四、实验内容与步骤(完整代码 + 操作)

实验一:GET 方式反射型 XSS 测试

1. 创建漏洞文件:xss_get.php
复制代码
<?php
// 直接获取URL参数,不做任何过滤
$input = $_GET['text'];
// 直接输出(这就是漏洞!)
echo "你输入的内容是:".$input;
?>
2. 攻击 Payload(复制即用)
复制代码
<script>alert('GET型XSS漏洞触发成功!')</script>
3. 构造恶意 URL 访问
复制代码
http://localhost/xss_get.php?text=<script>alert('XSS')</script>
4. 实验结果

页面弹出提示框 → 漏洞存在!🔍 URL 中可直接看到恶意代码。


实验二:POST 方式反射型 XSS 测试

1. 前端表单:xss1.html
复制代码
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<body>
<form action="xss1.php" method="post">
请输入:<input type="text" name="content">
<button type="submit">提交</button>
</form>
</body>
</html>
2. 后端漏洞文件:xss1.php
复制代码
<?php
// 直接获取表单数据
$input = $_POST['content'];
// 直接输出(高危漏洞)
echo "你输入的内容:".$input;
?>
3. 攻击 Payload
复制代码
<script>alert('POST型XSS漏洞触发!')</script>
4. 实验结果

提交后弹窗 → 漏洞验证成功 右键→查看网页源代码,可看到<script>被直接插入页面。


五、漏洞分析(必背重点)

1. 漏洞成因

后端直接获取用户输入,不过滤、不转义,直接输出到网页。

2. 漏洞危害

  • 窃取 Cookie → 登录账号
  • 会话劫持
  • 钓鱼页面跳转
  • 页面篡改
  • 用户隐私泄露

3. 漏洞特点

  • 非持久化(关页面就消失)
  • 必须诱导用户点击恶意链接
  • GET 型代码暴露在 URL,POST 型更隐蔽

六、防护建议(考试 / 报告必写)

  1. 输入过滤 :过滤<script>、javascript: 等危险内容
  2. 输出转义 :把< > " &变成普通文本
  3. PHP 固定用法htmlspecialchars()
  4. Cookie 设置 HttpOnly:防止被 XSS 窃取
  5. 使用 CSP 策略:限制脚本执行来源

七、加固实现(安全代码)

1. GET 加固(xss_get.php 安全版)

复制代码
<?php
$input = $_GET['text'];
// 转义!修复XSS
$safe = htmlspecialchars($input);
echo "你输入的内容是:".$safe;
?>

2. POST 加固(xss1.php 安全版)

复制代码
<?php
$input = $_POST['content'];
// 转义后输出,彻底安全
$safe = htmlspecialchars($input);
echo "你输入的内容:".$safe;
?>

加固后效果

再输入攻击代码,只会显示文字,不弹窗、不执行脚本!


八、核心知识点小白总结

  1. XSS 漏洞 = 输入的代码被浏览器执行
  2. 反射型 = 非持久、靠链接触发、关页面消失
  3. 攻击代码 = <script>alert()</script>
  4. 修复万能方法 = htmlspecialchars ()
  5. 永远不要相信用户输入!输出必须转义!

九、实验结论

本次实验成功验证了GET/POST 两种反射型 XSS 漏洞 的触发与利用,理解了漏洞原理,并掌握了输出转义的防护方法。只要对用户输入内容进行合理过滤与转义,即可有效防御反射型 XSS 漏洞。

相关推荐
名字还没想好☜34 分钟前
Next.js 中间件实战:鉴权、重定向与 A/B 分流
开发语言·前端·javascript·中间件·react·next.js
广州灵眸科技有限公司1 小时前
瑞芯微RV1126B开发板(EASY-EAI-PI2) INI文件操作
java·前端·javascript·网络·人工智能
江华森1 小时前
Web 开发基础:HTTP 与 REST
前端·网络协议·http
IT_陈寒2 小时前
Redis的KEYS命令把我搞崩溃了,改用SCAN才活过来
前端·人工智能·后端
Jackson__3 小时前
为什么 Agent 越聊越慢?聊聊 Context(上下文)管理
前端·agent·ai编程
KaMeidebaby3 小时前
卡梅德生物技术快报|抗体合成:多肽抗体合成工程化方案:Nsp2 保守肽多抗制备与多维度验证
前端·网络·数据库·人工智能·算法
青禾网络3 小时前
前端做音画匹配这件事,我从"随机塞"到"AI 自动对齐"
前端·github
2601_963771374 小时前
Hardening Enterprise WordPress Sites Against REST API Leaks and Bad Headers
前端·windows·word·php
蓝银草同学4 小时前
Stream 实战:博客列表排序、过滤与分页(AI 辅助学习 Java 8)
java·前端·后端
2601_957190904 小时前
飞行影院安装施工指南:场地、动感系统与影片内容配套
大数据·前端·人工智能