picoCTF,Forensics,取证类,43/50

题目站点链接 https://play.picoctf.org/

最初将所有题解放在一个帖子里,帖子太长了不便于阅读,
为了方便后期编辑和阅读。2023年02月10日,将帖子拆分,按照题目类型分为六类:

picoCTF-General Skills,基本技能类
picoCTF-Cryptography,密码类
picoCTF-Forensics,取证类
picoCTF-Web Exploitation,网页开发类
picoCTF-Reverse Engineering,逆向类
picoCTF-Binary Exploitation,二进制类

下面,给出题解,逐步完善中……
注意:很多题目flag是变化的,每一个账号解题得到的flag不一样,所以,下面帖子里的flag仅供参考,但解题思路方法是一样的。



2019 picoCTF

01、Glory of the Garden,50分

用二进制打开,搜索就行了。
010查找

02、extensions,150分

下载文件,用exiftool 或者binwalk检测,都能发现是PNG文件,改后缀名,打开后就看到flag

picoCTF{now_you_know_about_extensions}

03、shark on wire 1,150分

用Wireshark打开追踪流,只有UDP流,追踪到第6号,就能找到了

picoCTF{StaT31355_636f6e6e}

04、So Meta,150分

用二进制打开,搜索‘pico’就有了

picoCTF{s0_m3ta_eb36bf44}

05、What Lies Within,150分

用Stegsolve分析,Data Extract rbg0通道勾选,用zsteg软件分析更加快捷。

picoCTF{h1d1ng_1n_th3_b1t5}

06、c0rrupt,250分

和08题 advanced-potion-making 差不多。
文件头判断是一个PNG图片,但是被破坏了。在这里插入图片描述
有很多相似的地方,修复后,就得到flag

picoCTF{c0rrupt10n_1847995}

07、like1000,250分

tar解压缩1000层,写了一个代码linux脚本

#!/bin/bash

for ((i=1000; i>=0; i-=1));do
    tar -xvf $i.tar
    if [i<1000];then
     rm -f $i.tar
    fi
done

最后解压缩,有一张图片,注意图片上的字母数字差不多,大小写试一下。
picoCTF{l0t5_0f_TAR5}

08、m00nwalk,250分

一个用音频传送视频的技术,什么sstv什么的,下载好几个软件,播放音频,接收、调整……
无线电爱好者,用的比较多。据说可以接收国际空间的图片。
常用的有
MMSSTV
RX-SSTV
JVComm32(要注册码)

一直搞不好,后来,发现,电脑的声卡,内录比较麻烦。
安装一个虚拟驳接线驱动,输出和输入直接内录就可以了。
virtual audio cable下载链接
在这里插入图片描述

在这里插入图片描述
录制和播放都选 Line1,这是一个虚拟的驳接线。

然后启动SSTV软件,一边播放一边转换了,接收到图片。
注意,格式选 Scottie1 格式
在这里插入图片描述
图片的最后,手写了flag

picoCTF{beep_boop_im_in_space}

09、WhitePages,250分

def convertSpacesToBinary():
    with open('whitepages.txt', 'rb') as f:
        result = f.read()
        result = result.replace(b'\xe2\x80\x83', b'0')
        result = result.replace(b'\x20', b'1')
        result = result.decode()
    return result


def convertFromBinaryToASCII(binaryValues):
    binary_int = int(binaryValues, 2)
    byte_number = binary_int.bit_length() + 7 // 8

    binary_array = binary_int.to_bytes(byte_number, "big")
    ascii_text = binary_array.decode('ascii')

    print(ascii_text)


convertFromBinaryToASCII(convertSpacesToBinary())

很长的一段:

picoCTF{not_all_spaces_are_created_equal_3e2423081df9adab2a9d96afda4cfad6}

10、m00nwalk2,300分

和上一题m00nwalk一样,音频传输图像,获得三张图片,图片信息告诉我们一个软件工具steghide
steghide 前面的题目07、Trivial Flag Transfer Protoco用过,参考一下。
steghide extract -sf message.wav -p hidden_stegosaurus
获得steganopayload12154.txt
这就是flag

picoCTF{the_answer_lies_hidden_in_plain_sight}

11、shark on wire 2,300分

查找10.0.0.66的源地址过滤,找到了一些包,确实端口都在改变,然后把过滤的帧转存成一个文件,写一个代码分析文件。

# pip3
f = open('t_file.pcap', 'rb')
all_file_bytes = f.read()
f.close()
all_file_hex = all_file_bytes.hex()
print('all_file_hex:', len(str(all_file_hex)), all_file_hex)
all_data_hex = all_file_hex[48:]
frame_len = 152
frame_count = int(len(all_data_hex) // frame_len)
frame_arr = []
port_str = ''
flag = ''
for i in range(0, frame_count):
    frame_arr.append(all_data_hex[:frame_len])
    all_data_hex = all_data_hex[frame_len:]
    port_str = frame_arr[i][100:104]
    port_dec = int(port_str, 16) - 5000
    char = chr(port_dec)
    flag = flag + char
    print('第' + str(i).zfill(2) + '帧:', port_str, str(port_dec).zfill(3), char, frame_arr[i])
print('flag:', flag)

picoCTF{p1LLf3r3d_data_v1a_st3g0}

12、WebNet0,350分

这个是Wireshark软件的使用,追踪TLS流,字节为0,导入钥匙之后就可以了,有很长一段数据交换,里面就有

picoCTF{nongshim.shrimp.crackers}

13、Investigative Reversing 0,300分

用010Editor 打开图片,可以看到,最后多了一些字节,很明显是flag,但是被修改了
在这里插入图片描述
对程序进行反编译,,其中38到44行,可以看到对一些字节的编码进行了加减处理
在这里插入图片描述
写一个python

f = open("InvestigativeReversing0-mystery.png", "rb")
flag_date = f.read()[-26:]
print(flag_date)
flag = ''
for i in range(26):
    if i in range(6, 15):
        flag = flag + chr(flag_date[i] - 5)
    elif i ==15:
        flag = flag + chr(flag_date[i] + 5)
    else:
        flag = flag + chr(flag_date[i])
print(flag)

picoCTF{f0und_1t_d1deedaa}

14、Investigative Reversing 1,350分

这是32、Investigative Reversing 0的延续。三张图片加密

import os
import mmap


def memory_map(filename, access=mmap.ACCESS_READ):
    size = os.path.getsize(filename)
    fd = os.open(filename, os.O_RDONLY)
    return mmap.mmap(fd, size, access=access)


class Mystery(object):
    PNG_CRC_LEN = 4

    def __init__(self, file_name):
        self.map = memory_map(file_name)
        self.buffer = self.map[self.map.find(b"IEND") + len(b"IEND") + self.PNG_CRC_LEN:]
        self.offset = 0

    def read_byte(self):
        b = self.buffer[self.offset]
        self.offset += 1
        return b

    def __del__(self):
        self.map.close()


FLAG_LEN = 26

flag = [0] * FLAG_LEN
m1_stream = Mystery("mystery.png")
m2_stream = Mystery("mystery2.png")
m3_stream = Mystery("mystery3.png")

flag[1] = m3_stream.read_byte()
flag[0] = m2_stream.read_byte() - 0x15
flag[2] = m3_stream.read_byte()
flag[5] = m3_stream.read_byte()
flag[4] = m1_stream.read_byte()
for i in range(6, 10):
    flag[i] = m1_stream.read_byte()
flag[3] = m2_stream.read_byte() - (10 - 6)
for i in range(10, 15):
    flag[i] = m3_stream.read_byte()
for i in range(15, 26):
    flag[i] = m1_stream.read_byte()

print("".join(chr(x) for x in flag))

picoCTF{An0tha_1_69008b75}

15、Investigative Reversing 2,350分

继续

from pwn import unbits

with open("encoded.bmp", "rb") as data:
    data.seek(2000)
    bin_str = ""
    for j in range(50 * 8):
        byte = data.read(1)[0]
        bit = byte & 1
        bin_str += str(bit)
char_str = unbits(bin_str, endian='little')
print("Flag: " + "".join([chr(x + 5) for x in char_str]))

picoCTF{n3xt_0n30000000000000000000000000899f0192}

16、Investigative Reversing 3,400分

from pwn import unbits

with open("InvestigativeReversing3-encoded.bmp", "rb") as b:
    b.seek(0x2d3)
    bin_str = ""
    # just like the encoding script, we loop 100 times.
    for j in range(100):
        if ((j & 1) == 0):
            for k in range(8):
                byte = ord(b.read(1))
                bit = byte & 1 # the LSB
                bin_str += str(bit)
        # every other run we skip a byte by just reading and not storing it
        else:
            b.read(1)

char_str = unbits(bin_str, endian='little')
print("Flag: {}".format(char_str.decode("ascii")))

picoCTF{4n0th3r_L5b_pr0bl3m_00000000000001d16f3e3}

17、Investigative Reversing 4,400分

from pwn import *
bin_str = ""
for i in range(5, 0, -1):
    with open("Item0{}_cp.bmp".format(i), "rb") as b:
        b.seek(2019)
        for j in range(50):
            if (j % 5) == 0:
                for k in range(8):
                    bin_str += str(ord(b.read(1)) & 1)
            else:
                b.read(1)

char_str = unbits(bin_str, endian='little')
print(char_str.decode())

picoCTF{N1c3_R3ver51ng_5k1115_00000000000e88884db}

2019 picoGym Exclusive

01、WPA-ing Out,200分

rockyou wordlist ,是一个公开的单词表,专门破解密码的。
aircrack-ng -w rockyou.txt wpa-ing_out.pcap
这个命令破解密码
得到要一下信息:

Reading packets, please wait...
Opening wpa-ing_out.pcap
Resetting EAPOL Handshake decoder state.
Resetting EAPOL Handshake decoder state.
Read 23523 packets.

   #  BSSID              ESSID                     Encryption

   1  00:5F:67:4F:6A:1A  Gone_Surfing              WPA (1 handshake)

Choosing first network as target.

Reading packets, please wait...
Opening wpa-ing_out.pcap
Resetting EAPOL Handshake decoder state.
Resetting EAPOL Handshake decoder state.
Read 23523 packets.

1 potential targets


                               Aircrack-ng 1.7 

      [00:00:00] 1362/10303727 keys tested (8124.56 k/s) 

      Time left: 21 minutes, 8 seconds                           0.01%

                          KEY FOUND! [ mickeymouse ]


      Master Key     : 61 64 B9 5E FC 6F 41 70 70 81 F6 40 80 9F AF B1 
                       4A 9E C5 C4 E1 67 B8 AB 58 E3 E8 8E E6 66 EB 11 

      Transient Key  : 90 63 ED C6 BB 8A 59 D1 A5 E8 B4 6F 2F 89 66 C2 
                       0B D4 FC 62 37 2F 54 3B 7B B4 43 9B 37 F4 57 40 
                       FD D1 91 86 7F FE 26 85 7B AC DD 2C 44 E6 06 18 
                       03 B0 0F F2 75 A2 32 63 F7 35 74 2D 18 10 1C 25 

      EAPOL HMAC     : 65 2F 6C 0E 75 F0 49 27 6A AA 6A 06 A7 24 B9 A9 

其中
KEY FOUND! [ mickeymouse ]

picoCTF{mickeymouse}

2020 Mini-Competition

01、Pitter, Patter, Platters,200分

磁盘印象挂载不了,用二进制打开,发现一行字,Nothing to see here! But you may want to look here -->
后面一些东西复制不了,有一串字符,顺序是颠倒的,要重新排顺序。
然后,就是flag

picoCTF{b3_5t111_mL|_❤️_ce709d16}

2021 picoCTF

01、information,10分

下载得到一张图片,找zip、找结束符,找了很久。后来查找了网络,下载一个exiftool,可以查看文件信息,于是下载。
查阅看了一下图片文件,有一个License,是cGljb0NURnt0aGVfbTN0YWRhdGFfMXNfbW9kaWZpZWR9,
把这个字串解码,就得到flag。
用 CyberChef 可以解码。
CyberChef 官方网站 https://cyberchef.org/ ,可以连网运行,也可以下载到本地运行。

picoCTF{the_m3tadata_1s_modified}

02、Matryoshka doll,30分

莫斯科套娃,下载一个文件,用二进制看,有PK标志,504B0304
然后就截取,解压缩,发现又是一个图片,有504B标志
又截取解压缩,一共4次,得到一个txt。

或者在kali系统中,用binwalk分析文件,也能看到文件的情况。
命令是binwalk dolls.jpg
binwalk功能很强大,大家自己研究。
kali系统binwalk分析文件
其中这段:

272492        0x4286C         Zip archive data, at least v2.0 to extract, compressed size: 378954, uncompressed size: 383940, name: base_images/2_c.jpg

表示有一个ZIP文件,详细的分析到文件名和目录“base_images/2_c.jpg”
还是一层一层的解压缩,最后得到flag。

还有,kali系统官方网站 https://www.kali.org/,大家自己研究吧。
kali系统,可以说是为了CTF而诞生的,功能强大到令人发指,集成了大量的工具和命令,什么黑客、什么破解,什么攻击……应有尽有……

picoCTF{e3f378fe6c1ea7f6bc5ac2c3d6801c1f}

03、tunn3l v1s10n,40分

下载获得一个图片,打不开,查了互联网,才说,要一个特殊的系统https://www.photopea.com/

奇怪的图片
估计是做广告,这个系统做了这个题目之外,再也没用过。
打开后,发现图片尺寸比例异常,横向的一个长条,接着调整尺寸,
第二行中间,32 01 改成 6E 04
修改尺寸
再次用那个系统打开就有flag了。
猜测,这个位置是图片的高度,前面还有一个6E 04 ,是图片的宽度。
有了
picoCTF{qu1t3_a_v13w_2020}

04、Wireshark doo dooo do doo…,50分

用Wireshark分析流,第5条流有一行cvpbPGS{c33xno00_1_f33_h_qrnqorrs}
在这里插入图片描述
用CyberChef解码rot13移位就行了
在这里插入图片描述
picoCTF{p33kab00_1_s33_u_deadbeef}

05、MacroHard WeakEdge,60分

下载得到一个文件,用binwalk查看,是一个zip,并且最后包含一个文件是hiddden
在这里插入图片描述
完整目录和文件名是ppt\slideMasters\hidden
打开这个文件,得到一个字串
ZmxhZzogcGljb0NURntEMWRfdV9rbjB3X3BwdHNfcl96MXA1fQ
解码获得flag

picoCTF{D1d_u_kn0w_ppts_r_z1p5}

06、Trivial Flag Transfer Protoco,90分

这是一个tftp传输的流分析,用Wireshark打开包文件,用导出文件功能导出tftp文件
在这里插入图片描述
弹出这个窗口
在这里插入图片描述
可以看到有3个图片,程序和介绍,点击Save All按钮,保存它们。

instructions.txt里面有一段字符,看了几遍不知道是什么。后来用ROT13变换一下
GSGCQBRFAGRAPELCGBHEGENSSVPFBJRZHFGQVFTHVFRBHESYNTGENAFSRE.SVTHERBHGNJNLGBUVQRGURSYNTNAQVJVYYPURPXONPXSBEGURCYNA
ROT13之后
TFTPDOESNTENCRYPTOURTRAFFICSOWEMUSTDISGUISEOURFLAGTRANSFER.FIGUREOUTAWAYTOHIDETHEFLAGANDIWILLCHECKBACKFORTHEPLAN
我英语不好,对英语单词不敏感,这也是查网上资料的。
填补空格翻译一下
在这里插入图片描述
这真是介绍,对解题没什么帮助。
plan文件也是一段字串
VHFRQGURCEBTENZNAQUVQVGJVGU-QHRQVYVTRAPR.PURPXBHGGURCUBGBF
ROT13之后
IUSEDTHEPROGRAMANDHIDITWITH-DUEDILIGENCE.CHECKOUTTHEPHOTOS
填补空格翻译一下
在这里插入图片描述
program.deb解压后,有一个steghide可执行文件。
查了一下Steghide是一个成熟的隐写工具。
解码命令是:steghide extract -p 密码 -sf 文件名
在这里插入图片描述
第三个图片解码有一个flag.txt文件。cat看一下……

密码是怎么来的,我是查了别人的题解……
上面的plan里有一句英语WITH-DUEDILIGENCE,所以猜测密码是DUEDILIGENCE

picoCTF{h1dd3n_1n_pLa1n_51GHT_18375919}

07、Wireshark twoo twooo two twoo…,100分

分析流,查找DNS协议流,有几个网址,比较特别,说实话,我是没发现这些特别的网址,是看了别人的题解,才知道的。
cGljb0NU.reddshrimpandherring.com
RntkbnNf.reddshrimpandherring.com
M3hmMWxf.reddshrimpandherring.com
ZnR3X2Rl.reddshrimpandherring.com
YWRiZWVm.reddshrimpandherring.com
fQ==.reddshrimpandherring.com

把它们拼接起来就行了
cGljb0NURntkbnNfM3hmMWxfZnR3X2RlfQ==

然后解码

picoCTF{dns_3xf1l_ftw_de}

08、Disk, disk, sleuth!,110分

这是一个磁盘印象。
用二进制打开,就能搜索到flag
srch_strings dds1-alpine.flag.img | grep "picoCTF",也能找到
picoCTF{f0r3ns1c4t0r_n30phyt3_ad5c96c0}

09、Milkslap,120分

开发者工具可以查看到源文件有一个concat_v.png
下载下来,用 zsteg 解码
有个细节,这个图片17M多,下载太慢,我的下载还中断了。
在这里插入图片描述
picoCTF{p1kap1ka_p1c05729981f}

10、Disk, disk, sleuth! II,130分

Sleuthkit,mmls看磁盘,fls列目录,icat看文件
fls -o 2048 dds2-alpine.flag.img xxxx
icat -o 2048 dds2-alpine.flag.img 18291
在这里插入图片描述
picoCTF{f0r3ns1c4t0r_n0v1c3_69ab1dc8}

11、Surfing the Waves,250分

一个音频加密,用到,Scipy是世界上著名的、开源的高级科学计算库。Scipy是基于Numpy构建的一个集成了多种数学算法和方便的函数的Python模块。通过给用户提供一些高层的命令和类来操作和可视化数据,SciPy在python交互式会话中,大大增加了操作和可视化数据的能力。通过SciPy,Python的交互式会话变成了一个数据处理和一个系统原型system-prototyping环境,可以与MATLAB、IDL、Octave、R-Lab和SciLab等系统相匹敌。
  更重要的是,在Python中使用SciPy,还可以同时用一门强大的语言—Python来开发复杂和专业的程序。用SciPy写科学应用,还能获得世界各地的开发者开发的模块的帮助,受益于世界各地的开发人员在软件领域的许多小众领域中开发的附加模块。从并行编程到web到数据库子例程到各种类,Python程序员都可以使用。这些强大的功能,SciPy都有,特别是它的数学库。
from scipy.io import wavfile

samplerate, data = wavfile.read('SurfingtheWaves.wav')
rounded_data = []
unique = []
for i in data:
    r = round(i, -2)
    rounded_data.append(r)
    if r in unique:
        continue
    else:
        unique.append(r)
unique.sort()
flag_hex = []
for a in rounded_data:
    flag_hex.append(hex(unique.index(a))[2:])

print(bytearray.fromhex("".join(flag_hex)).decode())

得到了整个解密文字,也就是一篇介绍音频加密的文章和算法,内容如下:

C:\Users\Admin\Desktop\pythonCTF\venv\Scripts\python.exe C:\Users\Admin\Desktop\pythonCTF\SurfingtheWaves.py 
#!/usr/bin/env python3
import numpy as np
from scipy.io.wavfile import write
from binascii import hexlify
from random import random

with open('generate_wav.py', 'rb') as f:
	content = f.read()
	f.close()

# Convert this program into an array of hex values
hex_stuff = (list(hexlify(content).decode("utf-8")))

# Loop through the each character, and convert the hex a-f characters to 10-15
for i in range(len(hex_stuff)):
	if hex_stuff[i] == 'a':
		hex_stuff[i] = 10
	elif hex_stuff[i] == 'b':
		hex_stuff[i] = 11
	elif hex_stuff[i] == 'c':
		hex_stuff[i] = 12
	elif hex_stuff[i] == 'd':
		hex_stuff[i] = 13
	elif hex_stuff[i] == 'e':
		hex_stuff[i] = 14
	elif hex_stuff[i] == 'f':
		hex_stuff[i] = 15

	# To make the program actually audible, 100 hertz is added from the beginning, then the number is multiplied by
	# 500 hertz
	# Plus a cheeky random amount of noise
	hex_stuff[i] = 1000 + int(hex_stuff[i]) * 500 + (10 * random())


def sound_generation(name, rand_hex):
	# The hex array is converted to a 16 bit integer array
	scaled = np.int16(np.array(hex_stuff))
	# Sci Pi then writes the numpy array into a wav file
	write(name, len(hex_stuff), scaled)
	randomness = rand_hex


# Pump up the music!
# print("Generating main.wav...")
# sound_generation('main.wav')
# print("Generation complete!")

# Your ears have been blessed
# picoCTF{mU21C_1s_1337_6a936af2}

进程已结束,退出代码0

最后写出了flag

picoCTF{mU21C_1s_1337_6a936af2}

12、Very very very Hidden,300分

一个隐写,把power shell脚本写到png图片里。用流分析找到一张图片,然后分析图片解码解不了。解出来的脚本应该是这个

$out = "flag.txt"
$enc = [system.Text.Encoding]::UTF8
$string1 = "HEYWherE(IS_tNE)50uP?^DId_YOu(]E@t*mY_3RD()B2g3l?"
$string2 = "8,:8+14>Fx0l+$*KjVD>[o*.;+1|*[n&2G^201l&,Mv+_'T_B"

$data1 = $enc.GetBytes($string1)
$bytes = $enc.GetBytes($string2)

for($i=0; $i -lt $bytes.count ; $i++)
{
    $bytes[$i] = $bytes[$i] -bxor $data1[$i]
}
[System.IO.File]::WriteAllBytes("$out", $bytes) 

找了半天,有一个Extract-Invoke-PSImage.ps1脚本,但是系统总是报,无法加载……因为在此系统上禁止运行脚本。
修改权限……后来,可以了……

picoCTF{n1c3_job_f1nd1ng_th3_s3cr3t_in_the_im@g3}

2021 redpwn

01、advanced-potion-making,100分

用010Editor打开,发现有点像图片,然后用一个PNG图片对比了一下
在这里插入图片描述
文件头部分很多重合,尝试修改了一些字节
在这里插入图片描述
上图红色的部分修改了,4e 47 , 00 00 0D,和t.png一样。
源文件,变成了一张红色的图片。

在这里插入图片描述
StegSolve分析,到Red plane 0 的时候发现了文字,图片太大了,没截全部。

StegSolve 是一个jar的图片分析工具,在jdk环境下运行。做CTF经常用到。

picoCTF{w1z4rdry}

02、scrambled-bytes,200分

流分析,Wireshark发现一个UDP流,
172.17.0.2,一个随机的端口,向172.17.0.3的56742端口,发送数据,并且一次只有1字节。
python导入scapy包分析流

from scapy.layers.inet import IP, UDP
from scapy.all import *
from collections import namedtuple

packets = rdpcap('capture.pcapng')
Packet = namedtuple("Packet", "src_port payload")
payload_packets = []
for packet in packets:
    if not packet.haslayer(IP):
        continue
    if not packet.haslayer(UDP):
        continue
    if not packet[IP].src == "172.17.0.2":
        continue
    if not packet[IP].dst == "172.17.0.3":
        continue
    if not packet[UDP].dport == 56742:
        continue
    if not len(packet[UDP].payload) == 1:
        continue

    payload_packets.append(Packet(packet[UDP].sport, bytes(packet[UDP].payload)))

print(len(payload_packets))
print(payload_packets)

random.seed(1614044650)
locations = list(range(len(payload_packets)))
random.shuffle(locations)
output = [None] * len(payload_packets)

for i, packet in enumerate(payload_packets):
    srcport = random.randrange(65536)
    if(srcport != packet.src_port):
        raise RuntimeError(f"Iteration #{i}: srcport ({srcport}) != port ({packet.src_port})")

    output[locations[i]] = ord(packet.payload) ^ random.randrange(256)
# 写入图片
with open("output.png", "wb") as o:
    for b in output:
        o.write(bytes([b]))

打开output.png
在这里插入图片描述
picoCTF{n0_t1m3_t0_w4st3_5hufflin9_ar0und}

2022 picoCTF

01、Enhance!,100分

用010Editor打开,后面有断续的flag,拼起来就有了。
在这里插入图片描述

picoCTF{3nh4nc3d_d0a757bf}

02、File types,100分

就是压缩文件,一层一层的解开
7zip 可以解压大多数,有的要专用解压缩,我折腾了一天
第一层改后缀名用rar
第二层7zip
第三层7zip
第四层7zip
第五层-lzip 改后缀名用rar
第六层-lz4 专用lz4
第七层-lzma 用7zip
第八层-lzop 专用lzop
第九层-lzip1 改后缀名用rar
第十层-xz 用7zip

lzma还是lzop,很难安装,搞了很久,一些罕见的压缩各式,估计没推广开来,没人用。

最后,得到下面的串
7069636f4354467b66316c656e406d335f6d406e3170756c407431306e5f
6630725f3062326375723137795f39353063346665657d0a
拼接在一起用CyberChef解码就可以了

picoCTF{f1len@m3_m@n1pul@t10n_f0r_0b2cur17y_950c4fee}

03、Lookey here,100分

一本书,搜索pico就找到了

picoCTF{gr3p_15_@w3s0m3_2116b979}

04、Packets Primer,100分

用Wireshark分析流,一下就找到了,第一个界面就有了,我就懒得截图了。

picoCTF{p4ck37_5h4rk_01b0a0d6}

05、Redaction gone wrong,100分

一个PDF的报表
在这里插入图片描述
选中黑色部分复制粘贴就行了,文字和底色都是黑色,所以看不出来。

Breakdown
This is not the flag, keep looking

还有:

picoCTF{C4n_Y0u_S33_m3_fully}

06、Sleuthkit Intro,100分

需要一个Sleuth Kit,kali系统有这个软件,用mmls查看印象文件,得到Length 0000202752
启动题目的nc连接,输入202752,就得到flag

sleuthkit有很多命令,可以看专门的介绍
sleuthkit
$ blkcalc、$ blkcat、$ blkls、$ blkstat、$ fcat、$ ffind、$ fiwalk、$ fls、$ fsstat、$ hfind、$ icat、$ ifind、$ ils、$ img_cat、$ img_stat、$ istat、$ jcat、$ jls、$ jpeg_extract、$ mactime、$ mmcat、$ mmls、$ mmstat、$ stat、$ sigfind、$ sorter、$ srch_strings、$ tsk_comparedir、$ tsk_gettimes、$ tsk_imageinfo、$ tsk_loaddb、$ tsk_recover、$ usnjls
大部分是命令操作,我是研究了很久……

在这里插入图片描述

picoCTF{mm15_f7w!}

07、Sleuthkit Apprentice,200分

Sleuthkit,mmls看磁盘,fls列目录,icat看文件
fls -o 360448 disk.flag.img 1995
icat -o 360448 disk.flag.img 2371

picoCTF{by73_5urf3r_2f22df38}

08、Eavesdrop,300分

分析流,看到一段对话

Hey, how do you decrypt this file again?
You're serious?
Yeah, I'm serious
*sigh* openssl des3 -d -salt -in file.des3 -out file.txt -k supersecretpassword123
Ok, great, thanks.
Let's use Discord next time, it's more secure.
C'mon, no one knows we use this program like this!
Whatever.
Hey.
Yeah?
Could you transfer the file to me again?
Oh great. Ok, over 9002?
Yeah, listening.
Sent it
Got it.
You're unbelievable

然后找到后面有一段数据传送,9002端口
53616c7465645f5fbf1f3543c1437d489ac5c700f4809146799c9d503b551476a3f06159293bee7c9e5183fb5c4a184c
把这个数据写入一个文件。
用对话中的语句 openssl des3 -d -salt -in file.des3 -out file.txt -k supersecretpassword123
就能得到一个文件file.txt,打开后就有了

picoCTF{nc_73115_411_0ee7267a}

09、Operation Oni,300分

下载一个磁盘印象文件,找key_file,题目提示用
ssh -i key_file -p 56958 ctf-player@saturn.picoctf.net
这个是ssh,查了资料,找root/.ssh,找到了,把两个文件拷贝出来,改权限为600,就登录成功了。
ls列目录就找到了。
picoCTF{k3y_5l3u7h_339601ed}

10、St3g0,300分

一张图片,用zsteg查一下,就有了,用那个图片分析工具Stegsolve也行,不好找,什么RGB0通道读取
picoCTF{7h3r3_15_n0_5p00n_a9a181eb}$t3g0

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值