实训 Day2

本文介绍了网络协议中的FTP与SFTP在安全性、协议基础、端口使用和登录方式上的差异,以及HTTP与HTTPS在加密性、连接过程、端口和证书要求上的区别。此外,还概述了网络攻击中的拒绝服务攻击和Web入侵的一般步骤。
摘要由CSDN通过智能技术生成

实训3 网络协议分析

目的

  1. 了解网络层各类协议数据包的结构。
  2. 了解传输层各类协议数据包的结构。
  3. 掌握wireshark工具的使用方法。
  4. 能进行FTP/SFTP协议的安全性对比分析。
  5. 能进行HTTP/HTTPS协议的安全性对比分析。
一、FTP和SFTP有哪些区别?
  1. FTP(文件传输协议)和SFTP(安全文件传输协议)之间有五个主要的区别:
  2. 安全性。FTP在传输数据时使用明文格式,这意味着所有数据(包括用户名和密码)在传输过程中都是未加密的,因此存在被窃听和攻击的风险。相比之下,SFTP在数据传输之前进行加密,使用二进制格式进行传输,从而提供更高的安全性。
  3. 使用的协议。FTP基于TCP/IP协议,而SFTP是SSH(安全外壳协议)的一部分,主要用于远程登录。
  4. 端口使用。FTP通常使用TCP端口21来建立控制连接,而SFTP则通过SSH协议在TCP端口22上建立安全连接。
  5. 链接方式。FTP使用控制连接来建立连接,而SFTP通过SSH协议在客户端和服务器之间建立安全连接。
  6. 匿名登录。FTP支持匿名登录,无需账户即可访问,这可能会降低安全性。相比之下,SFTP需要用户注册并使用账户密码登录,可以设置不同的权限来增强安全性。
这些区别意味着,根据数据的安全性和隐私需求,选择FTP或SFTP进行文件传输是非常重要的。
二、HTTP和HTTPS有哪些区别?
  1. HTTP和HTTPS的主要区别在于HTTPS提供了数据加密和安全性,以下是具体区别:
  2. 安全性。HTTP(超文本传输协议)是一种明文传输协议,不提供数据加密,使得数据在传输过程中容易被截获和修改。相比之下,HTTPS(超文本传输安全协议)通过使用SSL(安全套接字层)或TLS(传输层安全)协议对HTTP进行加密,所有传输的数据都经过加密处理,提供了更高的安全性。
  3. 连接建立过程。HTTP连接的建立相对较快,一旦客户端发送请求并收到服务器的响应,连接就会断开。而HTTPS连接在传输数据前需要先进行SSL/TLS握手,以建立安全的通信通道,这个过程比HTTP的连接建立过程更为复杂和耗时。
  4. 端口号。HTTP连接通常使用80端口,而HTTPS连接则使用443端口。
  5. 证书要求。HTTPS需要使用SSL/TLS数字证书,这些证书由受信任的第三方机构(如证书颁发机构或CA)签发,用于验证服务器身份并确保数据传输的加密性和完整性。而HTTP不需要使用数字证书。
总的来说,HTTPS提供了比HTTP更强的安全性和数据保护能力,特别适用于需要传输敏感信息的场景,如在线交易或银行操作。
 

实训4 网络攻击溯源与流量分析

目的

  1. 了解拒绝服务攻击Dos和分布式拒绝服务攻击DDos原理。
  2. 了解Web入侵的一般步骤。
  3. 能进行拒绝服务攻击的流量分析。
  4. 能进行Web入侵的溯源分析。
问题:Web入侵的一般流程是什么?
       Web入侵的一般流程可以分为以下几个阶段:
  1. 确定目标:明确要攻击的网站或系统。
  2. 情报收集:
  3. 收集网站的注册信息、子域名信息、Web服务器系统类型、Web服务软件、数据库、Web开发语言等。
  4. 检测网站的安全漏洞,如XSS跨站脚本、上传漏洞、文件解析漏洞、文件包含漏洞等。
  5. 利用工具进行扫描,如WVS工具。
  6. 利用漏洞进行Web渗透攻击:根据检测到的漏洞类型,进行相应的攻击,如利用XSS漏洞进行Cookie窃取、会话劫持等。
  7. 权限提升:尝试提升在目标系统上的权限,方法包括利用SUID和GUID程序漏洞、本地服务漏洞、检查文件权限等。
  8. 放置后门:在目标系统中植入后门程序,以便于未来访问和控制。
  9. 痕迹清除:尝试清除入侵过程中留下的痕迹,以隐藏自己的身份,但完全清除是不可能的。

以上流程是基于搜索结果的一般性描述,实际入侵过程可能会根据具体情况有所不同。需要注意的是,这些步骤描述的是一种攻击流程,而非合法的系统管理或安全测试流程。在法律和道德框架内进行此类活动是必要的。
 
以下是一个简单的C语言万年历的实训报告,供您参考: 一、实训目的 本次实训的主要目的是通过编写一个简单的C语言万年历程序,巩固C语言基本语法和编程思想,提高编程能力和解决问题的能力。 二、实训要求 1、能够使用C语言基本语法和控制语句编写程序。 2、能够使用数组来存储和操作数据。 3、能够使用函数来实现模块化编程。 4、能够使用指针来操作内存中的数据。 5、能够使用文件来读取和写入数据。 三、实训内容 1、程序功能 本程序实现了一个简单的万年历功能,可以通过输入年份和月份来显示该月的日历。 2、程序实现 以下是本程序的主要代码实现: ```c #include <stdio.h> // 判断是否为闰年 int is_leap_year(int year) { if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { return 1; } else { return 0; } } // 获取某个月份的总天数 int get_days(int year, int month) { int days[] = {31, 28 + is_leap_year(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; return days[month - 1]; } // 获取某个日期是星期几 int get_weekday(int year, int month, int day) { if (month == 1 || month == 2) { year--; month += 12; } int c = year / 100; int y = year % 100; int w = y + y / 4 + c / 4 - 2 * c + 26 * (month + 1) / 10 + day - 1; w = (w % 7 + 7) % 7; return w; } // 显示日历 void show_calendar(int year, int month) { int days = get_days(year, month); int weekday = get_weekday(year, month, 1); printf(" 日 一 二 三 四 五 六\n"); int i; for (i = 0; i < weekday; i++) { printf(" "); } for (i = 1; i <= days; i++) { printf("%2d ", i); if ((weekday + i) % 7 == 0) { printf("\n"); } } if ((weekday + days) % 7 != 0) { printf("\n"); } } int main() { int year, month; printf("请输入年份:"); scanf("%d", &year); printf("请输入月份:"); scanf("%d", &month); if (month < 1 || month > 12) { printf("月份输入错误!\n"); return 1; } printf(" %d年%d月\n", year, month); show_calendar(year, month); return 0; } ``` 四、实训总结 通过本次实训,我学会了如何使用C语言来编写一个简单的万年历程序,巩固了C语言基本语法和编程思想,加强了对函数、数组、指针、文件等概念和用法的理解,提高了编程能力和解决问题的能力。同时,我也意识到在编程过程中需要注重代码的规范、可读性和可维护性,这对于日后的开发工作非常重要。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值