欢迎光临散文网 会员登陆 & 注册

ctf3

2022-11-13 19:14 作者:温柔的烟火  | 我要投稿



很逆天的题

首先,他提示easy_nbt   我是根本看不懂,搜了一下发现是个文件格式

然后解压文件解压出来之后,发现是我的世界的存档

依然没有思路


答案一:

把这个文件变成压缩文件,解压

然后对解压之后的文件直接记事本打开就可以找到flag

答案二:

找到这个工具

下载对应的版本即可

用这个打开文件

如图

使用serach   value设置为flag

点开这个
可以看到了

.dat文件是一种数据文件,只能有特定的工具打开


telnet

提示结构为key{}

解压之后发现后缀是pcap

我首先去搜telnet ,pcap 是什么

telnet 是命令啊,跟网络有关的

pcap文件是常用的数据报存储格式,可以理解为就是一种文件格式,只不过里面的数据是按照特定格式存储的,所以我们想要解析里面的数据,也必须按照一定的格式。

直接用记事本打开这个文件就可以看到flag

很简单的题目

眼见非实

啥也没有,只有题目名字提示

解压出来是一个docx文件

如图

当我把文字内容复制过来的时候发现除了pk其他都是没的

就是编码的问题

用winhex打开,发现头是50 4b 03 04,发现是zip,修改后缀为rar,解压后,得到一个word文档 打开发现也是一大推乱码 也找不到flag 再用winhex打开,发现头是50 4b 03 04 ,把文档后缀名改为rar 再次解压 然后再用资源管理器的搜素功能,查当前目录下的所有文件关键字为flag 找到后可以用一个方式打开 或者把后缀名改为txt


看到这里,记住这还是压缩文件

解压后得到文件夹,基本全是xml

这里有个word

看起来有点问题

看看各个xml

发现在document.xml里面看到flag

flag{F1@g}

任何office文件其实都是一个zip压缩包,可以直接解压的!


啊哒

是一张图片

我这里直接使用记事本打开,翻 到最后,发现flag。txt字眼

然后评论区说考虑压缩文件,我觉得是有道理的

改成zip之后发现是要密码的,密码在哪呢

需要密码
然后我这里记事本默认是ansi

看到开头这里有数字,嗯试试吧,其他中间基本是乱码,w3c的网站啥的,没啥东西

当然也考虑解压的问题,毕竟基本全是乱码啥的

还有说用kali 的binwalk来分离,等回去尝试

先试试

直接输入时不行的,密码错误

然后这个数字也是16进制的

sdnisc_2018

解压即可

获取flag

16进制反面的思路:

可以去找个工具看看16进制能转换啥

使用kali试试:

binwalk 看看这个图片

发现后缀是zip

foremost工具分离文件

(kali没有安装会提醒你安装的)

分离
检查输出

然后这个压缩包还是需要密码的

还是按上面的方式

这里我直接cat 这个jpg文件

依然是这段诡异的数字273646E6973635F32303138

找一下16进制的解码工具

得到sdnisc_2018


交解压密码,复制粘贴即可

flag{3XiF_iNf0rM@ti0n}

抄错的字符

题目


我顺手搭建了一下vscode

然后把代码复制了一下,代码晚上都有,php的也好,python 的也好

import base64

import os


str = "QWIHBL GZZXJS XZNVBZW"

Dict = [["Q","q","9"],["W","w"],["I","i","1"],["H","h"],["B","b","6"],["L","l"],

       ["G","g","9"],["Z","z","2"],["Z","z","2"],["X","x"],["J","j"],["S","s","5"],

       ["X","x"],["Z","z","2"],["N","n"],["V","v"],["B","b","6"],["Z","z","2"],["W","w"]]


max_Dict = [3,2,3,2,3,2,

           3,3,3,2,2,3,

           2,3,2,2,3,3,2]

map_Dict = [1]*len(Dict)


max_count = 1

for k in max_Dict:

   max_count = max_count*k

print(max_count)


def strDict(map_D,D):

   s = ""

   for i,j in zip(range(len(D)),map_D):

       s = s + D[i][j-1]

   return s


f = open("result.txt","w")


def decideStr(String):

   key="~!@#$%^&*()_+-={}[]|\\:;\"\',./? "

   for i in list(String):

       if not (i.isalnum() or i in key):

           return False

   return True


if len(map_Dict) == len(map_Dict):

       count = 0

       while not (map_Dict == max_Dict):

           for i in range(len(map_Dict)):

               if map_Dict[i] == max_Dict[i]:

                   map_Dict[i] = 1

               elif map_Dict[i] < max_Dict[i]:

                   map_Dict[i] = map_Dict[i] + 1

                   break

               else:

                   print("ERROR OverFlow")

           s = strDict(map_Dict,Dict)

           d = base64.b64decode(s+"=")

           try:

               d_str = d.decode()

               if decideStr(d_str):

                   re = s+"=="+"\t\t\t"+d_str+"\n"

                   f.write(re)

           except:

               pass

           count += 1

           print(count,"---",max_count)

           if max_count < count:

               os.abort()

我这里放一份




但是跑了一段时间之后,输出的是一个超级长的文本1000多种,然后主要是不是乱码的就可以考虑

然后这么多,最后一个才是

也跟作者名字有关



简单取证1

下载之后是一个7Z的压缩文件

解压之后:打开或者cat也基本是乱码啥的,内容量也是比较大的,先扫个包

使用binwalk直接看一下文件

提示是mysql文件

该怎么办呢

看了一下解释,发现是windows下的系统目录,主要来存放用户名和密码的

他们说使用取证的工具,那么我现在是在kali下的又该怎么做呢

取证工具一般使用procdump配合mimikatz


我先尝试在windows下面去试试,因为deb下的命令有点问题(可能我不懂吧)

然后下载好之后运行

到你的config目录下

lsadump::sam /sam:SAM /system:SYSTEM 使用命令

总共可以看到这么多

这里也有一条

user应该就是了,再加个密码

这个Hash NTLM去搜一下什么:


介绍:

LM Hash是Windows使用的最古老的密码存储,其历史可追溯到1980年代的OS / 2。在LAN Manager协议中使用,由于允许的字符集有限,因此它们很容易破解。如果仍然可用,则可以从Windows系统上的SAM数据库或域控制器上的NTDS数据库中获取它们




NTLM Hash,Vista之后现代Windows系统使用的Hash,它的前身是LM Hash,两者相差不大,只是使用的加密算法不同。通常意义上的NT Hash指存储在SAM数据库NTDS数据库中对密码进行摘要计算后的结果,NT Hash可以通过转储SAM数据库或使用Mimikatz来获得,可直接用于PtH,并且通常存在于lsass进程中,便于SSP使用

NT Hash是支持Net NTLM认证协议本地认证过程中的一个重要参数。其长度为32位,由数字与字母组成


Windows不存储用户的明文密码,它会将用户的明文密码经过加密后存储在SAM数据库中。SAM文件的路径是%SystemRoot%\system32\config\sam。在进行本地认证的过程中,当用户登录时,系统将用户输入的明文密码加密成NTLM Hash,与SAM数据库中的NTLM Hash进行比较,从而实现认证

在域环境下,域控制器中也存在这样的数据库AD (Account Database),位于ntds.dit

关于SAM我们也可以在config中找到,的确起到储存的作用

生成算法逻辑:

  1. 明文转换为16进制ASCII码

  2. 使用little-endian(小端)序将其在转换为Unicode格式。0x80之前的标准ASCII码转换成Unicode码,就是简单地从0x??变成 0×00??。此类标准ASCII串按little-endian序转换成Unicode串,就是简单地在原有每个字节之后添加0×00

  3. 对所获取的 Unicode串进行标准MD4单向哈希,无论数据源有多少字节,MD4固定产生128-bit的哈希值

--

使用 这网站解密

md5在线解密破解,md5解密加密 (cmd5.com)


总共两个hash NTML 第一个我直接复制查询是不行的

第二个解密之后是:

forensics

ok那现在吧已知的都尝试一下

结果:

 flag{administrator-QQAAzz_forensics}

关于mimikatz 的一些命令:

::命令可以查看帮助信息

lsadump::lsa /inject 查看ntds.dit与sam文件的信息,如果没有查看ntds.dit的就只查看sam

sekurlsa::logonpasswords 列出已登陆用户的密码(比较常用)

lsadump::sam sam表获取Hash


具体大家可以参考一下相关的博客,这里不在赘述


那么这里还是想在kali中尝试,该怎么做呢

主要是debian下该怎么使用

/.-

..-./.-../.-/--./----.--/-../...--/..-./-.-./-.../..-./.----/--.../..-./----./...--/----./----./...../-----/....-/-----.-

莫斯密码,找个网站接一下就好

然后%u7d是ASCII HEX编码解码两个{}、

这个大小写转换我是不理解,反正大写不对,可能是 设定的问题



聪明的小羊

一只小羊翻过了2个栅栏 fa{fe13f590lg6d46d0d0}

线索在描述里

本来是以为lg跑后面去了,然后我按照我自己的理解,写了一个flag确实不对

看评论是栅栏密码,然后找个网站破解一下就有了,而且栅栏密码确实跟几个栅栏有关


这里介绍一下栅栏密码:

加密原理

①把将要传递的信息中的字母交替排成上下两行。
②再将下面一行字母排在上面一行的后边,从而形成一段密码。
③例如:
明文:THE LONGEST DAY MUST HAVE AN END
加密:
1、把将要传递的信息中的字母交替排成上下两行。
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
2、 密文:
将下面一行字母排在上面一行的后边。
TEOGSDYUTAENN HLNETAMSHVAED
解密:
先将密文分为两行
T E O G S D Y U T A E N N
H L N E T A M S H V A E D
再按上下上下的顺序组合成一句话
明文:THE LONGEST DAY MUST HAVE AN END

道理也好懂,可以给的提示太少了,可能需要反应,提到栅栏就去想栅栏


ok

Ook. 

文件为:

Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook! Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook!
Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook?
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook!
Ook. Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook? Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook!
Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook?
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook?
Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook! Ook! Ook! Ook! Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook!
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook? Ook. Ook? Ook!
Ook. Ook? Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook. Ook! Ook! Ook! Ook! Ook! Ook!
Ook! Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook! Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook! Ook? Ook! Ook! Ook. Ook? Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook? Ook. Ook? Ook! Ook. Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook! Ook. Ook? Ook.
明眼看到Ook后面. ! ? 这三个字样


然后可以看到Ook是有解码网站的在bugku里面就有

复制粘贴就有了Ook to text

flag{0a394df55312c51a}


[+-<>]

看到这个格式是brainfuck


bugku里面也有

复制粘贴就出结果

flag{0d86208ac54fbf12}






滑稽

打开网站


F12就可以看到



<!--flag{c657a7d793398063d7976fbb80ff2e8b}-->

这个网站确实比较有意思




ctf3的评论 (共 条)

分享到微博请遵守国家法律