20252918 2025-2026-2 《网络攻防实践》实践10报告
1.实践内容
目标
1、深入理解 SQL 注入的攻击原理,能够熟练对 SELECT 和 UPDATE 语句实施注入操作,并掌握参数化查询在阻断此类攻击中的作用机制。
2、全面掌握存储型 XSS 跨站脚本的攻击原理及利用手法,能够实现弹窗警告、Cookie 窃取、自动操作、页面篡改以及蠕虫传播等典型攻击效果。
3、深刻认识 Web 应用常见漏洞的安全风险,系统掌握针对性的防御技术,形成攻防一体、主动防御的安全思维。
相关原理
1、SQL 注入攻击原理
SQL 注入的根本原因在于:Web 应用未对用户输入做严格校验,直接将输入内容拼接到 SQL 语句中交给数据库执行。攻击者可借此构造恶意输入,改变原有 SQL 语句的逻辑结构,从而绕过认证、越权查询或篡改数据库内容。
①SELECT 语句注入:常用于登录绕过和拖库窃取数据。攻击者通过构造永真条件或利用注释符截断后续查询逻辑,使数据库返回预期之外的结果集。
②UPDATE 语句注入:常用于篡改数据。攻击者通过闭合字符串、增加额外的 SET 子句,修改本无权操作的字段内容,例如将用户权限或商品价格改写为任意值。
③防御原理:采用参数化查询(预处理语句,Prepared Statement)。该技术将用户输入视为参数而非 SQL 命令的一部分,实现数据与命令的分离,从根源上阻断注入攻击。
2、XSS 跨站脚本攻击原理
XSS 攻击的本质是攻击者将恶意 JavaScript 代码注入到目标 Web 页面中。当其他用户访问该页面时,恶意代码在受害者浏览器中执行,可造成信息窃取、身份冒用、页面篡改甚至蠕虫传播。
典型危害:
- Cookie 窃取 → 会话劫持
- 模拟用户操作 → 权限提升
- 动态篡改页面内容 → 误导或攻击更多用户
- 自我复制传播 → XSS 蠕虫
防御原理:
- 对用户输入进行严格的过滤与转义(如 HTML 实体编码)
- 启用 HTMLawed 等安全过滤插件
- 为 Cookie 设置 HttpOnly属性,禁止脚本读取
- 部署内容安全策略(CSP),限制可执行脚本的来源
2.实践过程
1、安装虚拟机
https://seed.nyc3.cdn.digitaloceanspaces.com/SEEDUbuntu-16.04-32bit.zip
2、 SQL注入攻击与防御
查看apache服务:

进入mysql:
登录mysql,用户名root,密码seedubuntu
mysql -u root -pseedubuntu
查看数据库
shwo databases;
进入Users数据库
use Users;
查看数据库中的表
show tables;
展示表中的所有数据项
select * from Credential;




访问www.seedlabsqlinjection.com, 查看源码:

nano /var/www/SQLInjection/unsafe_home.php查看文件内容:

在用户名输入框输入 Alice'#:

进入:

修改薪资:

修复漏洞:
登录和修改资料接口改为 POST即可。
3、XSS跨站脚本攻击
登录Alice:

修改介绍:

成功:

显示cookie:

成功:

窃取cookie:
攻击者ip:192.168.8.135

将 Cookie 发送到攻击者监听的 500 端口:

开启监听:

登录,成功:

F12 打开浏览器开发者工具,切换到 "Network" 标签,分析加好友请求:

将加好友的JS代码,放入 Alice 的 "About me" :
查看 Samy 的好友列表,发现已自动添加 Alice 为好友,自动操作成功:

修改信息:
构造:
将代码放入 Alice 的 "About me" 字段,使用 Boby 账号访问 Alice :

成功。
对抗 XSS 攻击:
登录Admin,查看Plugins:


如果禁用该插件,站点会处于不安全的状态。
点击启用后,再次进行验证。重新让 Admin 访问 Alice 页面时,受害者主页不再被自动修改,说明危险 HTML 或脚本内容已经被过滤,攻击失效。
3.学习中遇到的问题及解决
- 问题1:执行SQL命令报错 "ERROR 1064 (42000)"
- 问题1解决方案:检查SQL语句末尾是否添加分号,修正语法错误
4.实践总结
通过本次实验,我深入理解了 SQL 注入与存储型 XSS 这两种主流 Web 漏洞的攻击原理及实际危害。从攻击视角看,仅仅一个输入校验的缺失,就可能导致数据库全量泄露、用户会话被恶意劫持,甚至系统权限被全面接管;从防御视角看,参数化查询与严格的输入过滤依然是对抗这两类攻击最有效的基础手段。
实验过程中,我进一步体会到网络安全领域“攻防一体”的动态对抗特征:攻击者会不断挖掘新的利用手法,防御者则必须持续迭代自身的防护策略。作为一名未来的网络安全从业者,不仅要熟悉攻击技术,更需要培养从攻击者角度审视系统的能力,从而在漏洞被利用之前发现并修复它。同时,必须始终遵守国家网络安全法律法规和职业道德底线,所有技术学习与演练只能在合法授权环境中进行,绝不将所学知识用于任何非法行为。
