尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

20232305 2025-2026-1 《网络与系统攻防技术》实验八实验报告

20232305 2025-2026-1 《网络与系统攻防技术》实验八实验报告
📅 发布时间:2026/6/19 6:40:07

1.实验内容

1.1 学习Web前后端语言.
1.2 搭建一个简单的登录网站。
1.3 尝试对网站进行SQL注入,XSS,CSRF攻击。

2.实验过程

2.1 Web前端HTML
2.1.1 安装,启停Apache
Apache是一种开源Web服务器软件,其核心功能是接收客户端HTTP/HTTPS请求,解析后返回网页资源,实现网页发布与访问。是 DVWA 等漏洞靶场的默认运行环境,能模拟真实 Web 服务场景。
在kali中输入命令
systemctl start apache2
systemctl status apache2.service
启动Apache
image
在浏览器中输入localhost
image
可见成功启动

2.1.2 实现HTML表单功能
(1)GET与POST方法
GET和POST是HTML表单向服务器提交数据的两种核心HTTP请求方法。
GET方法:提交的数据会附加在URL末尾,以?分隔,参数间用&连接,传输数据量有限,且数据可见于地址栏、浏览器历史记录和服务器日志中,安全性较低。适用于获取数据、查询等非敏感操作。
POST方法:提交的数据会被封装在HTTP请求体中,不显示在URL上,传输数据量更大,安全性相对更高。适用于提交敏感数据或上传文件。

(2)实现表单功能
进入/var/www/html,创建并编写html文件
97f383e74815e78e21b1f945edadefbe
20da233114fb5477661ad0247dfd9c8c

可见,如果使用GET的话,信息会在URL上直接显示

2.2 Web前端javascript
JavaScript是Web核心脚本语言,它能够增强页面交互和动态操作。DOM是一种编程接口,它将HTML文档抽象为树形结构,每个标签、属性、文本都是树中的“节点”。通过DOM,JavaScript能直观地访问、修改网页的内容、结构和样式,实现页面动态交互。

在之前编写的代码的基础上,加上用户名和密码不能为空的条件290c7c042c6d90a320114d3268e2895c
ca6065522cb87b07f876d5843c165a74

尝试注入,在用户名中输入

HTML injection succeed.


8aaa3c3ef01008e4b42ed7e90c25b629
可见欢迎的界面已经改变

2.3 Web后端MySQL

kali上自带MySQL,输入systemctl start mysql启动MySQL。
输入mysql进入数据库,然后进行数据库创建,授权等操作,具体如下:
CREATE DATABASE db20232305; #创建数据库

USE db20232305; 进入数据库

CREATE USER 'user2305' IDENTIFIED BY 'user@2305'; #创建用户

GRANT ALL PRIVILEGES ON db20232305.* TO 'user2305'; #授予用户所有权限

FLUSH PRIVILEGES; #刷新权限

ALTER USER 'user2305' IDENTIFIED BY 'user@2305'; #修改用户密码

CREATE TABLE tablefirst (

id INT AUTO_INCREMENT PRIMARY KEY,

username VARCHAR(50) NOT NULL,

password VARCHAR(100) NOT NULL

); #创建表

INSERT INTO tablefirst VALUES (1,'user2305', 'user@2305'),(2,'user2', 'user@222'); #插入数据

SELECT * FROM tablefirst; #查看表中所有内容
image

2.4 使用PHP链接数据库
PHP-是一门服务器端脚本语言,可嵌入HTML中使用,也是搭建动态 Web 应用的核心技术之一。支持MySQL等数据库连接,是Web应用中实现数据存储的关键工具。
修改之前的代码,使其能够与数据库链接
ed63e9b6c6b0c2aeaba476e395d62ee1
107df4dc0772b5bb770e5c7d62cba7b1
4a11ea27e61f4c4ca2e30a6994bfd604
可见已经能够链接数据库并进行用户认证。

2.5 基础攻击测试
2.5.1 SQL注入攻击
由于代码中的查询语句是$sql = "SELECT * FROM tablefirst WHERE username = '$input_username' AND password = '$input_password'";会直接将用户输入的username和password拼接到SQL语句中,没有任何过滤。因此如果用户输入特定的输入很有可能改变这段代码的逻辑导致注入攻击

当用户名已知,密码未知时,可以通过在用户框中输入' OR 1=1 #,密码随便填,拼接后的SQL语句会变成:SELECT * FROM tablefirst WHERE username = '' OR 1=1 #' AND password =,可见用户名无论查不查都是真,而密码部分的判断则已经被注释掉了。
3f73aa98694ac31f58b18bcc2c5a3a73

或者在已知用户名的情况下,在密码框中输入' OR '1'='1,拼接后的SQL语句就会变成AND pwd='' OR '1'='1'

b0bb904c6adc8d45c37fb83193b1a70f

可见成功注入

2.5.2 XSS攻击
在用户栏输入,密码任意
46348d7ef89913c306f4f06638935e96
可见成功攻击。

2.6 安装DVWA或WebGoat平台,并完成SQL注入,XSS,CSRF攻击
2.6.1 SQL注入
在WebGoat上完成(A3)Injection→SQL Injection(intro)部分的9-13题。安装过程参考https://blog.csdn.net/2302_82189125/article/details/135894689

第九题:
SELECT * FROM user data WHERE first name = 'John'AND last name='____'。这题由于有选项,所以非常简单,只需要根据课上讲过的先让引号闭合,然后或一个永真的条件即可通过。
df6abbd323917491585f977b11d5d666

第十题:
题中已经给出了sql语句'SELECT * FROM user data WHERE login count = " + Login Count + " AND userid = " + User ID;只要在Login_Count输入数字,然后再User_id输入一个数字然后或一个永真的条件即可。
75736b960034a473add6d76c226e8f19

第十一题:
本题的意思是查看表中的数据,但是没有给出Authentication TAN,需要在语句"SELECT * FROM employees WHERE last_name = '" + name + "' AND auth_tan = '" + auth_tan + "'";中构造SQL注入来查看表。因此我想要在第一个空内输入John,在第二个空中加上永真条件。
dbde0172de066d00a1cb12a2d9c1039d

第十二题:
这题的意思是修改这个表,让我们的工资比Bob和Tobi高,因此先查看我们的工资。
f1d0abc9ad6e6c463510a66ff84f7e7f

然后再在后面加上UPDATE语句
7f57de5d4af1724e65501373a56ace6b
可见成功修改。

第十三题:
这道题需要我们删除记录我们操作的access_log表。
d946736c0d3a92a97b86515652b32b0f
由此推测应该是在表中查询名字是___的所有操作记录,因此先输入Smith'并让引号闭合,然后加上删除语句即可
0474b7d5d7ab949013f50cb4195a6997

2.6.2XSS攻击
完成(A3)Injection→Cross Site Scripting部分的7、10、11题

第七题:
该部分是反射性XSS攻击,在第一个输入框输入,让网站弹出窗口显示注入成功。
ae52ad09f36e2e928a87bc4c37d226ba

第十题:
该部分是基于DOM的XSS攻击,需要先找到在生产过程中留在应用程序中的测试代码的路径。
按F12检查源代码,由于题目提示生产环境中遗留了测试代码路由,因此再按Crtl+Shift+F,输入test搜索所有文件夹中含有test的代码,然后在GoatRouter.js文件中发现了路由。
14ae51e77c5bf212cee7ae326c959b6d

按照题意,在输入框中输入完整基础路由start.mvc#test/
6d60764e37725bad5e58614ac3cf9412
可见正确

第十一题:
本题需要我们在刚才的基础上进行基于DOM的XSS攻击,题中给出了一个函数webgoat.customjs.phoneHome(),会生成一个随机数,构造注入使其能被执行,然后将生成的随机数放入输入框即可完成。
在URL中输入http://127.0.0.1:8080/WebGoat/start.mvc#test/,然后在控制台即可得到随机数。
7b091fe2e7271790f742f807d7e81cdd
输入
a4445bc796b9d74b7b8a4aba27186a2f
可见成功。

2.6.2 CSRF攻击
CSRF攻击的核心是利用用户已经得到认证的身份,在用户不知情的情况下诱导用户执行非预期操作,比如修改密码等操作。
这里由于webgoat上的题目对我来说有点困难,因此我在DVWA上进行这部分内容。
image

输入新密码,点击Change,在上面可以看到http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=222222&password_conf=222222&Change=Change#
这时在Test Creadentials中使用222222能够成功登录,可见成功更改。

image

现在通过这个得到的URL进行构造,http://127.0.0.1/DVWA/vulnerabilities/csrf/?password_new=20232305_csrf&password_conf=20232305_csrf&Change=Change#,构造后的URL能够将密码改为20232305_csrf。假设我是用户,在成功登陆后在不知情的情况下点击了该链接,就会发现自己的密码被更改了,再输入222222发现无法登录。
image
而输入20232305_csrf就能够成功登录
image

3.问题及解决方案

  • 问题1:在进行XSS攻击时,我尝试使用

相关新闻

  • 患者投诉管理,是否正面临这些难题?
  • NOIP 游记
  • CF794E Choosing Carrot

最新新闻

  • Cuckoo3终极指南:如何快速搭建开源恶意软件分析沙箱
  • 2026黄酒代理机构客户口碑力荐,实力测评助力高性价比之选 - mypinpai
  • ISO45001职业健康安全管理体系认证:证优达助力苏州企业破局痛点,南通市口碑好的ISO45001职业健康安全管理体系认证供应商推荐 - 品牌推荐师
  • 深入解析P4080DS嵌入式系统:从电源、时钟到ngPIXIS FPGA的硬件设计精髓
  • ERPNext开源ERP完整教程:中小企业如何零成本实现数字化转型
  • rvest完整指南:3分钟掌握R语言最简单网页抓取技巧

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号