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

目录

    • 一、感谢和安利
    • 二、MISC-新手练习篇Writeup
    • 1、this_is_flag
    • 2、pdf
    • 3、如来十三掌
    • 4、give_you_flag
    • 5、坚持60S
    • 6、gif
    • 7、掀桌子
    • 8、stegano
    • 9、SimpleRAR(比较麻烦)
    • 10、base64stego
    • 11、ext3
    • 12、功夫再高也怕菜刀

一、感谢和安利

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

二、MISC-新手练习篇Writeup

1、this_is_flag

CTF学习之路-攻防世界:MISC,入门篇_第1张图片
WP:
明显,入门用的,了解flag格式,直接提交题目例子的flag就可以了
flag{th1s_!s_a_d4m0_4la9}

2、pdf

CTF学习之路-攻防世界:MISC,入门篇_第2张图片
WP:
题目给的一个PDF文件,使用PDF编辑器打开(我用的是万兴PDF编辑器)
CTF学习之路-攻防世界:MISC,入门篇_第3张图片
移出来看到就是flag了
CTF学习之路-攻防世界:MISC,入门篇_第4张图片

3、如来十三掌

CTF学习之路-攻防世界:MISC,入门篇_第5张图片
附件是一份文档:
CTF学习之路-攻防世界:MISC,入门篇_第6张图片
一段经文,那不就是与佛论禅加密?
http://www.keyfc.net/bbs/tools/tudoucode.aspx
记得加“佛曰”前缀
CTF学习之路-攻防世界:MISC,入门篇_第7张图片
得到一串字符:
MzkuM3gvMUAwnzuvn3cgozMlMTuvqzAenJchMUAeqzWenzEmLJW9
看着这段字符,百思不得其解,最后题目:“如来十三掌”,十三??试试rot13解码,得到一串字符串:
ZmxhZ3tiZHNjamhia3ptbmZyZGhidmNraWpuZHNrdmJramRzYWJ9
CTF学习之路-攻防世界:MISC,入门篇_第8张图片
最后丢到解密工具里一键解码,得到flag:
flag{bdscjhbkzmnfrdhbvckijndskvbkjdsab}

CTF学习之路-攻防世界:MISC,入门篇_第9张图片

4、give_you_flag

CTF学习之路-攻防世界:MISC,入门篇_第10张图片
WP:附件是个GIF图片,看到闪的飞快,最后有一帧黑乎乎的,那就是可疑的地方了,思路肯定是工具逐帧分解GIF

可以用“GIF动画帧提取器”,或者PS分解出来。
PS打开:找到可疑图层,打开图层显示,就可以看到可疑的那一帧。
CTF学习之路-攻防世界:MISC,入门篇_第11张图片
GIF动画帧提取器打开,找到可疑帧
CTF学习之路-攻防世界:MISC,入门篇_第12张图片
小恐龙手上拿着的是二维码,但是少了三个定位点,要PS回去。
CTF学习之路-攻防世界:MISC,入门篇_第13张图片
扫描二维码得到flag
CTF学习之路-攻防世界:MISC,入门篇_第14张图片

5、坚持60S

CTF学习之路-攻防世界:MISC,入门篇_第15张图片
下载下来是一个jar包
CTF学习之路-攻防世界:MISC,入门篇_第16张图片
运行起来是一个游戏,没啥有用的信息

CTF学习之路-攻防世界:MISC,入门篇_第17张图片
使用gd-gui工具反编译看看
查找关键字flag
CTF学习之路-攻防世界:MISC,入门篇_第18张图片
看到还真能找到
CTF学习之路-攻防世界:MISC,入门篇_第19张图片
flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}
拿去提交,发现是不对的

flag{RGFqaURhbGlfSmlud2FuQ2hpamk=}看着像base64加密,拿去解密。
CTF学习之路-攻防世界:MISC,入门篇_第20张图片
得到flag
flag{DajiDali_JinwanChiji}

6、gif

CTF学习之路-攻防世界:MISC,入门篇_第21张图片
下载下来,发现是个压缩包,打开看看,发现都是黑、白两色块。脑袋里啪的想到:白:0 ,黑 :1,为啥不是白:1,黑:0??做久了开发就知道,0是白黑是1,1都是反派的那个。
CTF学习之路-攻防世界:MISC,入门篇_第22张图片
CTF学习之路-攻防世界:MISC,入门篇_第23张图片

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

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

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

二进制转字符得到flag(用的随波逐流提供的解密工具):flag{FuN_giF}
CTF学习之路-攻防世界:MISC,入门篇_第24张图片
**

7、掀桌子

**
CTF学习之路-攻防世界:MISC,入门篇_第25张图片
这题没啥附件,只有一串字符,看字符是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
CTF学习之路-攻防世界:MISC,入门篇_第26张图片
怎么办呢?上面结果再减下128
CTF学习之路-攻防世界:MISC,入门篇_第27张图片
这就对了。跟着感觉走没毛病,把进制转换成字符。
CTF学习之路-攻防世界:MISC,入门篇_第28张图片

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

CTF学习之路-攻防世界:MISC,入门篇_第29张图片
下载得到附件
CTF学习之路-攻防世界:MISC,入门篇_第30张图片
PDF编辑器,删掉挡在前面的那对英文,看到还剩下几个文本框。
CTF学习之路-攻防世界:MISC,入门篇_第31张图片
复制文本出来,贴在记事本上
CTF学习之路-攻防世界:MISC,入门篇_第32张图片
很明显,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替换为-。
到如下结果。
CTF学习之路-攻防世界:MISC,入门篇_第33张图片

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

放到解密工具上解密
CTF学习之路-攻防世界:MISC,入门篇_第34张图片
去掉空格,得到一串字符
CONGRATULATIONS,FLAG:1NV151BL3M3554G3
题目说flag是小写,转换为小写,得到flag。
congratulations,flag:1nv151bl3m3554g3
那么flag就是flag{1nv151bl3m3554g3}

9、SimpleRAR(比较麻烦)

CTF学习之路-攻防世界:MISC,入门篇_第35张图片
下载是1个压缩包,360解压
CTF学习之路-攻防世界:MISC,入门篇_第36张图片
当然是用rar啦,360压缩不会提示错误的,winrar才会。
CTF学习之路-攻防世界:MISC,入门篇_第37张图片
文件头损坏,那就用winhex打开修复。
首先了解下rar块头的知识:
CTF学习之路-攻防世界:MISC,入门篇_第38张图片

在这里怎么定位坏的块呢?
1、定位文件位置
rar提示secret.png文件头已损坏,winhex先定位到文件所在。
通过搜索文本,可以定位到文件所在了。
CTF学习之路-攻防世界:MISC,入门篇_第39张图片
题目用到的是这两个知识点
CTF学习之路-攻防世界:MISC,入门篇_第40张图片
附上常见的块类型(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

CTF学习之路-攻防世界:MISC,入门篇_第41张图片
改完后保存,如下图
CTF学习之路-攻防世界:MISC,入门篇_第42张图片
解压压缩包,看到图片出来了。
CTF学习之路-攻防世界:MISC,入门篇_第43张图片
打开图片,发现空白的,所以再winhex打开,发现是gif的图
CTF学习之路-攻防世界:MISC,入门篇_第44张图片
把后缀改为gif。
CTF学习之路-攻防世界:MISC,入门篇_第45张图片
用stegsolve打开,得到半截二维码。
CTF学习之路-攻防世界:MISC,入门篇_第46张图片
题目说是分层图片,ps打开,发现有图层是隐藏的。
CTF学习之路-攻防世界:MISC,入门篇_第47张图片
开启图层再另存为。
CTF学习之路-攻防世界:MISC,入门篇_第48张图片
用stegsolve打开,得到半截二维码。

CTF学习之路-攻防世界:MISC,入门篇_第49张图片
两半二维码拼合
CTF学习之路-攻防世界:MISC,入门篇_第50张图片
还是缺定位点没有,ps上去,得到完整的二维码。
CTF学习之路-攻防世界:MISC,入门篇_第51张图片
扫码得到flag
flag{yanji4n_bu_we1shi}

10、base64stego

CTF学习之路-攻防世界:MISC,入门篇_第52张图片
下载完提示有密码,但是这是伪加密,360压缩可以无视。
360压缩打开压缩包是这么一大串东西
CTF学习之路-攻防世界:MISC,入门篇_第53张图片
base64解密
CTF学习之路-攻防世界:MISC,入门篇_第54张图片

就一段隐写技术的说明,没啥用。
题目中说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 位一组

CTF学习之路-攻防世界:MISC,入门篇_第55张图片

得到flag
Base_sixty_four_point_five

11、ext3

CTF学习之路-攻防世界:MISC,入门篇_第56张图片
提示很明显:ext3文件系统,Linux环境。
直接mount试试看,然后再进到目录,试着查找flag文件,没想到还真有,查看flag.txt,得到密文:
ZmxhZ3tzYWpiY2lienNrampjbmJoc2J2Y2pianN6Y3N6Ymt6an0=
CTF学习之路-攻防世界:MISC,入门篇_第57张图片
解密后得到flag
CTF学习之路-攻防世界:MISC,入门篇_第58张图片

flag{sajbcibzskjjcnbhsbvcjbjszcszbkzj}

12、功夫再高也怕菜刀

CTF学习之路-攻防世界:MISC,入门篇_第59张图片
下载后要密码。
CTF学习之路-攻防世界:MISC,入门篇_第60张图片
看后缀就试着wareshark打开看看。

你可能感兴趣的:(屌丝小帅的CTF学习过程,安全,经验分享,恰饭)