这里写目录标题
- 1.理论题
- 2.数据安全:
- 3.数据分析:
- 数据分析(1)
- 数据分析(3)
前言:第一次参加数信杯,很荣信晋级线下,有点难度好多都要写脚本ovo。
1.理论题
略
2.数据安全:
3.数据分析:
数据分析(1)
1.请填写正确答案
通过流量分析,可知流量包中采用的不安全协议是什么?同时请找出使用该不安全协议所用的用户名及密码。(最终提交的结果为md5(不安全协议缩写小写+用户名+密码)。如不安全协议为http,用户名为abc,密码为123,则md5(http+abc+123,)提交48346e4b413ad63aac2d7e528f1da1e6)
知识点:首先分析一下发现很多FTP
协议,通过FTP状态码可以判断230
为登入成功
查看数据流发现账号密码admin/adin123
可以得到答案(ftp+admin+admin123)
的md5
值加密,第一次提交没加+所以没对,细心看题。
1xx - 肯定的初步答复
这些状态代码指示一项操作已经成功开始,但客户端希望在继续操作新命令前得到另一个答复。
• 110 重新启动标记答复。
• 120 服务已就绪,在 nnn 分钟后开始。
• 125 数据连接已打开,正在开始传输。
• 150 文件状态正常,准备打开数据连接。
2xx - 肯定的完成答复
一项操作已经成功完成。客户端可以执行新命令。
• 200 命令确定。
• 202 未执行命令,站点上的命令过多。
• 211 系统状态,或系统帮助答复。
• 212 目录状态。
• 213 文件状态。
• 214 帮助消息。
• 215 NAME 系统类型,其中,NAME 是 Assigned Numbers 文档中所列的正式系统名称。
• 220 服务就绪,可以执行新用户的请求。
• 221 服务关闭控制连接。如果适当,请注销。
• 225 数据连接打开,没有进行中的传输。
• 226 关闭数据连接。请求的文件操作已成功(例如,传输文件或放弃文件)。
• 227 进入被动模式 (h1,h2,h3,h4,p1,p2)。
• 230 用户已登录,继续进行。
• 250 请求的文件操作正确,已完成。
• 257 已创建“PATHNAME”。
3xx - 肯定的中间答复
该命令已成功,但服务器需要更多来自客户端的信息以完成对请求的处理。
• 331 用户名正确,需要密码。
• 332 需要登录帐户。
• 350 请求的文件操作正在等待进一步的信息。
4xx - 瞬态否定的完成答复
该命令不成功,但错误是暂时的。如果客户端重试命令,可能会执行成功。
• 421 服务不可用,正在关闭控制连接。如果服务确定它必须关闭,将向任何命令发送这一应答。
• 425 无法打开数据连接。
• 426 Connection closed; transfer aborted.
• 450 未执行请求的文件操作。文件不可用(例如,文件繁忙)。
• 451 请求的操作异常终止:正在处理本地错误。
• 452 未执行请求的操作。系统存储空间不够。
5xx - 永久性否定的完成答复
该命令不成功,错误是永久性的。如果客户端重试命令,将再次出现同样的错误。
• 500 语法错误,命令无法识别。这可能包括诸如命令行太长之类的错误。
• 501 在参数中有语法错误。
• 502 未执行命令。
• 503 错误的命令序列。
• 504 未执行该参数的命令。
• 530 未登录。
• 532 存储文件需要帐户。
• 550 未执行请求的操作。文件不可用(例如,未找到文件,没有访问权限)。
• 551 请求的操作异常终止:未知的页面类型。
• 552 请求的文件操作异常终止:超出存储分配(对于当前目录或数据集)。
• 553 未执行请求的操作。不允许的文件名。
常见的 FTP 状态代码及其原因
• 150 - FTP 使用两个端口:21 用于发送命令,20 用于发送数据。状态代码 150 表示服务器准备在端口 20 上打开新连接,发送一些数据。
• 226 - 命令在端口 20 上打开数据连接以执行操作,如传输文件。该操作成功完成,数据连接已关闭。
• 230 - 客户端发送正确的密码后,显示该状态代码。它表示用户已成功登录。
• 331 - 客户端发送用户名后,显示该状态代码。无论所提供的用户名是否为系统中的有效帐户,都将显示该状态代码。
• 426 - 命令打开数据连接以执行操作,但该操作已被取消,数据连接已关闭。
• 530 - 该状态代码表示用户无法登录,因为用户名和密码组合无效。如果使用某个用户帐户登录,可能键入错误的用户名或密码,也可能选择只允许匿名访问。如果使用匿名帐户登录,IIS 的配置可能拒绝匿名访问。
• 550 - 命令未被执行,因为指定的文件不可用。例如,要 GET 的文件并不存在,或试图将文件 PUT 到您没有写入权限的目录。
FLAG:458e8dbe703531b99e3381853b3134ef
2.通过协议分析,基于不安全协议,可发现流量包中共计传输多少份文件,其中相对特殊的文件,其文件名是什么?本题按结果给分。最终提交的结果为md5(数量+文件名)。如数量为 1,文件名(不包含后缀)为 flag,则提交结果为 md5(1+flag),提交:13fdbdc6aa7c5412c598e30f5bdbfdc3
筛选ftp-data
发现传了100
个图片和一个key.txt
但是这里加起来是101
这个需要注意!!
知识点:FTP-data
是指在文件传输协议(FTP)
中使用的一种数据连接,它用于在客户端和服务器之间传输文件数据。FTP-data
通常使用端口20
进行数据传输,而控制连接通常使用端口21
。
所以是101+key
的md5
值。
FLAG:717c0890a66bcf9524e87fdccb7d2bf4
3.该程序员喜欢猫,连采用隐写算法都和猫相关,请基于传输的文件提取出最终传输的数据。注意:数据中包含 flag 。最终提交结果为 flag 字符串。如找到的数据flag{e984b95caaf7240eacf4fa44ea596b9e},则提交结果即为大括号内的字符串。
流量包使用foremost
拆解到100
个png
使用脚本进行拼接
拼图脚本如下:
import cv2,os
import numpy as np
ims = []
for i in os.listdir('./png'):
ims.append(cv2.imread('png/'+i))
im = np.concatenate(ims)
cv2.imwrite('0.png',im)
又根据key.txt
的A
和B
(猫脸脚本)得到脚本如下:
import cv2
import numpy as np
import matplotlib.pyplot as plt
def arnold_decode(image,a, b):
decode_image = np.zeros(shape=image.shape)
h, w = image.shape[0], image.shape[1]
N = h
for ori_x in range(h):
for ori_y in range(w):
new_x = ((a*b+1)*ori_x + (-b)* ori_y)% N
new_y = ((-a)*ori_x + ori_y) % N
decode_image[new_x, new_y, :] = image[ori_x, ori_y, :]
return decode_image
a = 0x6f6c53
b = 0x729e
im = cv2.imread('1.png')
im = arnold_decode(im,b,a)
cv2.imwrite('1.png',im)
plt.imshow(im)
plt.show()
Base
三次得到flag
,zsteg
也可以。
FLAG:3f3c1b49504191faf6576866f99806cd