CTF学习之路-攻防世界:MISC,入门篇

一、感谢和安利

我是从攻防世界入门的,感谢攻防世界的免费靶场
靶场地址:攻防世界
https://adworld.xctf.org.cn/

二、MISC-新手练习篇Writeup

1、this_is_flag

在这里插入图片描述
WP:
明显,入门用的,了解flag格式,直接提交题目例子的flag就可以了
flag{th1s_!s_a_d4m0_4la9}

2、pdf

在这里插入图片描述
WP:
题目给的一个PDF文件,使用PDF编辑器打开(我用的是万兴PDF编辑器)
在这里插入图片描述
移出来看到就是flag了
在这里插入图片描述

3、如来十三掌

在这里插入图片描述
附件是一份文档:
在这里插入图片描述
一段经文,那不就是与佛论禅加密?
http://www.keyfc.net/bbs/tools/tudoucode.aspx
记得加“佛曰”前缀
在这里插入图片描述
得到一串字符:
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
看着这段字符,百思不得其解,最后题目:“如来十三掌”,十三??试试rot13解码,得到一串字符串:
ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9
在这里插入图片描述
最后丢到解密工具里一键解码,得到flag:
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

在这里插入图片描述

4、give_you_flag

在这里插入图片描述
WP:附件是个GIF图片,看到闪的飞快,最后有一帧黑乎乎的,那就是可疑的地方了,思路肯定是工具逐帧分解GIF

可以用“GIF动画帧提取器”,或者PS分解出来。
PS打开:找到可疑图层,打开图层显示,就可以看到可疑的那一帧。
在这里插入图片描述
GIF动画帧提取器打开,找到可疑帧
在这里插入图片描述
小恐龙手上拿着的是二维码,但是少了三个定位点,要PS回去。
在这里插入图片描述
扫描二维码得到flag
在这里插入图片描述

5、坚持60S

在这里插入图片描述
下载下来是一个jar包
在这里插入图片描述
运行起来是一个游戏,没啥有用的信息

在这里插入图片描述
使用gd-gui工具反编译看看
查找关键字flag
在这里插入图片描述
看到还真能找到
在这里插入图片描述
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
拿去提交,发现是不对的

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}看着像base64加密,拿去解密。
在这里插入图片描述
得到flag
flag{DajiDali_JinwanChiji}

6、gif

在这里插入图片描述
下载下来,发现是个压缩包,打开看看,发现都是黑、白两色块。脑袋里啪的想到:白:0 ,黑 :1,为啥不是白:1,黑:0??做久了开发就知道,0是白黑是1,1都是反派的那个。
在这里插入图片描述
在这里插入图片描述

一番比对后得到一串数字:
01100110011011000110000101100111011110110100011001110101010011100101111101100111011010010100011001111101

然后发现总数是104个,这要么是2、4、8一组,计算机中以字节为单位存储和解释信息,规定一个字节由八个二进制位构成,那么8个一组没跑了。

8个一组得到:
01100110 01101100 01100001 01100111 01111011 01000110 01110101 01001110 01011111 01100111 01101001 01000110 01111101

二进制转字符得到flag(用的随波逐流提供的解密工具):flag{FuN_giF}
在这里插入图片描述
**

7、掀桌子

**
在这里插入图片描述
这题没啥附件,只有一串字符,看字符是0-9,a-f组成的,就知道这是16进制字符串咯,那么2个16进制可以代表一个字符串,就用python进行转换下。

string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
for i in range(0,len(string),2):
    s = '0x'+string[i]+string[i+1]
    i = int(s,16)
    print(str(i))

发现结果字符块都大于128,ASCII码范围是0-127
在这里插入图片描述
怎么办呢?上面结果再减下128
在这里插入图片描述
这就对了。跟着感觉走没毛病,把进制转换成字符。
在这里插入图片描述

string = "c8e9aca0c6f2e5f3e8c4efe7a1a0d4e8e5a0e6ece1e7a0e9f3baa0e8eafae3f9e4eafae2eae4e3eaebfaebe3f5e7e9f3e4e3e8eaf9eaf3e2e4e6f2"
flag = ''
for i in range(0,len(string),2):
    s = '0x'+string[i]+string[i+1]
    i = int(s,16)-128
    flag+=chr(i)
print(flag)
    

转换后得到以下结果,可以得到flag咯:
Hi, FreshDog! The flag is: hjzcydjzbjdcjkzkcugisdchjyjsbdfr

8、stegano

在这里插入图片描述
下载得到附件
在这里插入图片描述
PDF编辑器,删掉挡在前面的那对英文,看到还剩下几个文本框。
在这里插入图片描述
复制文本出来,贴在记事本上
在这里插入图片描述
很明显,ABAB那串就是密文了。复制出来

BABA  BBB  BA  BBA  ABA  AB  B  AAB  ABAA  AB  B  AA  BBB  BA  AAA  BBAABB  AABA  ABAA  AB  BBA  BBBAAA  ABBBB  BA  AAAB  ABBBB  AAAAA  ABBBB  BAAA  ABAA  AAABB  BB  AAABB  AAAAA  AAAAA  AAAAB  BBA  AAABB

试下转换为摩斯密码,记事本替换下A和B,A替换为 .,B替换为-。
到如下结果。
在这里插入图片描述

-.-.  ---  -.  --.  .-.  .-  -  ..-  .-..  .-  -  ..  ---  -.  ...  --..--  ..-.  .-..  .-  --.  ---...  .----  -.  ...-  .----  .....  .----  -...  .-..  ...--  --  ...--  .....  .....  ....-  --.  ...-- 

放到解密工具上解密
在这里插入图片描述
去掉空格,得到一串字符
CONGRATULATIONS,FLAG:1NV151BL3M3554G3
题目说flag是小写,转换为小写,得到flag。
congratulations,flag:1nv151bl3m3554g3
那么flag就是flag{1nv151bl3m3554g3}

9、SimpleRAR(比较麻烦)

在这里插入图片描述
下载是1个压缩包,360解压
在这里插入图片描述
当然是用rar啦,360压缩不会提示错误的,winrar才会。
在这里插入图片描述
文件头损坏,那就用winhex打开修复。
首先了解下rar块头的知识:
在这里插入图片描述

在这里怎么定位坏的块呢?
1、定位文件位置
rar提示secret.png文件头已损坏,winhex先定位到文件所在。
通过搜索文本,可以定位到文件所在了。
在这里插入图片描述
题目用到的是这两个知识点
在这里插入图片描述
附上常见的块类型(HEAD_TYPE)如下:

标记块:HEAD_TYPE=0x72
压缩文件头:HEAD_TYPE=0x73
文件头:HEAD_TYPE=0x74
旧风格的注释头:HEAD_TYPE=0x75
旧风格的用户身份信息:HEAD_TYPE=0x76
旧风格的子块:HEAD_TYPE=0x77
旧风格的恢复记录:HEAD_TYPE=0X78
旧风格的用户身份信息:HEAD_TYPE=0X79
子块:HEAD_TYPE=0x7A
最后的结束块:HEAD_TYPE=0x7B

2、找到块头
上一个文件结束,是 flag is not here,就是那个迷惑的txt文件内容结尾啦。那么跟着的就是下个文件,图片文件的开头。看下图,从上面知识,知道第三个字节开始,就是文件块头咯,那么我们要改的就是这个字节。提示文件头损坏,那就给他改成对应的 文件头:HEAD_TYPE=0x74

在这里插入图片描述
改完后保存,如下图
在这里插入图片描述
解压压缩包,看到图片出来了。
在这里插入图片描述
打开图片,发现空白的,所以再winhex打开,发现是gif的图
在这里插入图片描述
把后缀改为gif。
在这里插入图片描述
用stegsolve打开,得到半截二维码。
在这里插入图片描述
题目说是分层图片,ps打开,发现有图层是隐藏的。
在这里插入图片描述
开启图层再另存为。
在这里插入图片描述
用stegsolve打开,得到半截二维码。

在这里插入图片描述
两半二维码拼合
在这里插入图片描述
还是缺定位点没有,ps上去,得到完整的二维码。
在这里插入图片描述
扫码得到flag
flag{yanji4n_bu_we1shi}

10、base64stego

在这里插入图片描述
下载完提示有密码,但是这是伪加密,360压缩可以无视。
360压缩打开压缩包是这么一大串东西
在这里插入图片描述
base64解密
在这里插入图片描述

就一段隐写技术的说明,没啥用。
题目中说base64解密,最后一步精髓(最后一步是精髓,不就是提示你取行尾的密文),所以提示很明显啦,base64隐写。
这篇文章说的很好啦,base64隐写原理。
https://blog.csdn.net/xnightmare/article/details/103774379

然后解题思路是,边解密边把隐写的密文拿到再解密。
依次读取每行,从中提取出隐写位。
如果最后没有‘=’,说明没有隐写位,跳过。
如果最后是一个‘=’,说明有两位隐写位,将倒数第二个字符转化为对应的二进制索引,然后取后两位。
如果最后是两个‘=’,说明有四位隐写位,将倒数第三个字符转化为对应的二进制索引,然后取后四位。
将每行提取出的隐写位依次连接起来,每8位为一组转换为ASCII字符,最后不足8位的丢弃。

贴上大佬的代码:

# -*- coding: cp936 -*-
import base64
b64chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'#base64字典库
with open(r'C:\Users\XUHC\Documents\代码段\stego.txt', 'rb') as f: #读取文件内容
    bin_str = ''
    for line in f.readlines():
        stegb64 = str(line, "utf-8").strip("\n")
        rowb64 =  str(base64.b64encode(base64.b64decode(stegb64)), "utf-8").strip("\n")
        offset = abs(b64chars.index(stegb64.replace('=','')[-1])-b64chars.index(rowb64.replace('=','')[-1]))
        equalnum = stegb64.count('=') #no equalnum no offset
        if equalnum:
            bin_str += bin(offset)[2:].zfill(equalnum * 2)
    print(''.join([chr(int(bin_str[i:i + 8], 2)) for i in range(0, len(bin_str), 8)])) #8 位一组

在这里插入图片描述

得到flag
Base_sixty_four_point_five

11、ext3

在这里插入图片描述
提示很明显:ext3文件系统,Linux环境。
直接mount试试看,然后再进到目录,试着查找flag文件,没想到还真有,查看flag.txt,得到密文:
ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=
在这里插入图片描述
解密后得到flag
在这里插入图片描述

flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

12、功夫再高也怕菜刀

在这里插入图片描述
附件后缀很奇葩:acfff53ce3fa4e2bbe8654284dfc18e1.pcapng
pcap是wareshark流量的抓包,png是图片,从这两方面下手了。
1、万变不离其宗,先分解提取。
foremost 提取
在这里插入图片描述
得到压缩包,解压要密码,确认不是伪加密后,进行下一步。
在这里插入图片描述
密码估计要在数据流里找了。
wareshark打开流量数据包,ctrl+f,查找flag关键字。
在这里插入图片描述
根据题目提示,或许会跟png有关,找了一圈没有,发现有个6666.jpg文件,追踪流-tcp数据流,发现可疑的东西
FFD8FF开头,FFD9结尾,jpeg图片,拿去还原看是什么。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
winhex生成图片
从FFD8FF开头,FFD9结尾复制,打开winhex
点击文件,新建,大小设置1111
在这里插入图片描述
粘贴,提示编码选择,选ASCII Hex
在这里插入图片描述
另存为,加后缀.jpg
在这里插入图片描述
得到一张图,估计是解压密码了
在这里插入图片描述
Th1s_1s_p4sswd_!!!
拿去解压,得到flag.txt文件
在这里插入图片描述

打开flag.txt,得到flag
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
在这里插入图片描述
至此,新手的misc模块题目全部完成了。

  • 6
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

屌丝小帅的逆袭

赠人玫瑰,手留余香

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值