本题题目有点问题不能发布改了一下,题目下载为gif,看的时候中间闪过三张白底红字,应该是分解gif,通过脚本分解后得到flag(注意小写的l和数字1长得很像,本题为数字1)
flag{he11ohongke}
010直接打开图片,flag就在文件字符串尾
flag{stego_is_s0_bor1ing}
直接扫二维码,得到secret is here,010打开二维码png,得到隐藏zip文件,没有思路直接爆破(后来发现txt文件为4number,应该密码是4位数字),得到密码7639,解压zip得到CTF{vjpw_wnoei},替换为flag{vjpw_wnoei}
flag{vjpw_wnoei}
直接将图片高度修改为2倍,即可看到flag
flag{He1l0_d4_ba1}
exe无法打开,放到kali中file命令查看,发现是txt文件,修改后缀打开文本文档,发现提示为base64加密的jpg,解base64,存储png图片发现为二维码,扫码得到KEY{dca57f966e4e4e31fd5b15417da63269}
flag{dca57f966e4e4e31fd5b15417da63269}
010打开图片,最后面藏有flag
flag{97314e7864a8f62627b26f3f998c37f1}
查看流量包,找到其中http返回码200的流量,看有一段png,提取出来发现不是,然后看题干发现flag是管理员密码,看到有login的交互,找到password,得到flag
flag{ffb7567a1d4f4abdffdb54e022f8facd}
看题干为4位数字加密,直接archpr爆破,得到密码2563,解压得到base64密文,解密得到flag
flag{70354300a5100ba78068805661b93a5c}
查看文件属性,发现备注中藏有flag
flag{870c5a72806115cb5439345d8b014396}
根据题目提示应该是lsb隐写,隐写了一个png文件,保存出来是二维码,直接扫码得到cumtctf{1sb_i4_s0_Ea4y}
flag{1sb_i4_s0_Ea4y}
下载后发现为加密zip,010查看发现内容未加密,尝试用kali binwalk直接分离
flag{Adm1N-B2G-kU-SZIP}
直接从分组字节流搜索flag,找到flag{da73d88936010da1eeeb36e945ec4b97}
flag{da73d88936010da1eeeb36e945ec4b97}
中间部分慢慢补充
打开是段base64,解密得到kanbbrgghjl{zb____}vtlaln,感觉像个栅栏,解密后找不到,没思路求助wp,发现是栅栏栏目7加密,栅栏加密
得到kzna{blnl_abj_lbh_trg_vg},在凯撒解密得到xman{oyay_now_you_get_it}
根据提示压缩包密码为压缩包名称,解了两个发现需要循环解压,不会写脚本直接看wp
通过脚本循环解压600多遍得到一个txt
import zipfile
import os
path=r"E:/buuctf/misc/千层套路/1" #这个自己把控想在哪里开始使用脚本
file="0573.zip"
def un_zip(Path,File_name): #传入一个路径和当前路径的压缩包名字,返回解压缩后的文件名字current_file=Path+os.sep+File_name #路径+'/'+文件名#new_path=''os.chdir(Path) #改变当前工作路径,方便添加文件夹zip_file=zipfile.ZipFile(current_file)#print(zip_file.namelist()[0])new_file=zip_file.namelist()[0] #新解压的压缩文件为新的路径名字actall( path=Path, members=zip_file.namelist(), pwd=File_name[0:-4].encode() )#因为密码就是文件名zip_file.close()return new_filenew=file
new1=''
while (1):#new1=un_zip(path,new) #第一次解压出来了new1if(new ==''): #判断是否解压完毕,是则直接退出print("end:"+new1)breakelse: #否则就开始新的解压new1=un_zip(path,new)print("continue:"+new1)new=new1
打开txt里面是rgb,用脚本生成图片,发现是个二维码,扫码得到flag
from PIL import Image
from zlib import *file=open(','r').read().split('n')
#print(file)
i=0
maxlenth=200
picw("RGB",(maxlenth,maxlenth))
for y in range(maxlenth):for x in range(maxlenth):if file[i]=='(0, 0, 0)':color=(0,0,0)pic.putpixel([x,y],color)else:color=(255,255,255)pic.putpixel([x,y],color)i=i+1
pic.show()
flag{ta01uyout1nreet1n0usandtimes}
题干为百里挑一,发现流量包中http传输有大量图片,导出http流,得到大量图片,没思路GG。
百度wp,通过exiftool图片信息查询工具可以查询图片中藏有的信息 exiftool * |grep flag 得到前半段flag{ae58d0408e26e8f
而后wp说搜索exif,然后对应到tcp流114,发现后半段26a3c0589d23edeec}
flag{ae58d0408e26e8f26a3c0589d23edeec}
运行exe文件,发现说直到打开会给flag,会在2020.9.17打开,每隔10秒刷新,然后显示当前月日,将电脑时间调整到9月17日,重新打开exe,得到flag
flag{We1cOm3_70_cyber_security}
打开流量包,发现没什么线索,导出http内容,发现在进行爆破,之后没思路...
求助wp说将导出的http文件放到kali中,判断含有CTF,通过grep -r命令在文件夹中便利,得到SUCTF{password_is_not_weak}
flag{password_is_not_weak}
看下流量包,有很多http流量,先把流量都导出来看下,发现有个dmp文件,应该是要找管理员密码
放到mimikatz里面跑下获得管理员密码W3lc0meToD0g3
然后再看流量包没发现别的线索,直接放到kali里面formost试下,发现存在有zip包,打开需要管理员密码,应该就是前面那个,解压出来中存在D0g3{3466b11de8894198af3636c5bd1efce2}
flag{3466b11de8894198af3636c5bd1efce2}
首先看zip直接解压,发现是个html,打开发现说要再快点,直接看源码,有个flag,base32解密得到suctf{hAHaha_Fak3_F1ag},提交发现不对,再去看下png,010打开发现没有隐藏,Stegsolve打开,lsb隐写一段对称加密
尝试了下秘钥hAHaha_Fak3_F1ag,Fak3都不对,看下wp,说是3des加密,秘钥为suctf{hAHaha_Fak3_F1ag}(这tm谁能想到这么长的秘钥),得到suctf{U_F0und_1t}
flag{U_F0und_1t}
题目给了一个rar和一个ftm文件,先看rar,打开说文件头失败,010看下,发现提示有问题,这里是rar文件编码的一些注意事项
RAR文件头为52 61 72 21 1A 07 00(大多数情况rar4.x) ,52 61 72 21 1A 07 10 00(小部分目前没见过rar5.x),RAR文件尾为C4 3D 7B 00 40 07 00,同时还要注意文件块一般是74开头
然后发现rar文件块被修改,将7A改成74,解压rar得到图片和txt提示。
图片用Stegsolve打开查看图层,发现在Blue plane 0 中藏有二维码
CQR打开二维码看下,得到ci{v3erf_0tygidv2_fc0}。
然后再看下ftm文件,binwalk看下藏有zip,分离下发现还有个pacp包,打开流量包发现都是usb流量,正好对应题目usb隐写,使用UsbKeyboardDataHacker-master
得到xinan,加上前面得到的ci{v3erf_0tygidv2_fc0},应该是维吉尼亚,用随波逐流解下,发现包含flag字符,应该是栅栏,再解下得到flag
flag{vig3ne2e_is_c00l}
jpg文件打不开,直接010打开看下,发现是个文档,搜索flag得到utflag{fil3_ext3nsi0ns_4r3nt_r34l}
flag{fil3_ext3nsi0ns_4r3nt_r34l}
打开流量包,发现传输了一个flag.zip文件,直接binewalk出来,是个加密的,然后看流量包中有unzip命令传输,其中包含密码supercomplexpassword,直接解压zip得到CTF{this_flag_is_your_flag}
flag{this_flag_is_your_flag}
一共两个zip文件,先看下虚假的压缩包,010打开发现是个伪加密,修改后解压得到,里面是个rsa算法,由于n=p*q,且pq为素数,所以pq为3和11
import gmpy2
"""
一般情况下会给p,q,(n),e,c
n=p*q,且p,q均为素数
d为解密钥,c为加密后密文,ans为解密后数据
将所有数据对应替换即可gmpy2.mpz(n)#初始化一个大整数
gmpy2.mpfr(x)# 初始化一个高精度浮点数x
d = gmpy2.invert(e,n) # 求逆元,de = 1 mod n
C = gmpy2.powmod(M,e,n)# 幂取模,结果是 C = (M^e) mod n
gmpy2.is_prime(n) #素性检测
d(a,b) #欧几里得算法,最大公约数
dext(a,b) #扩展欧几里得算法
gmpy2.iroot(x,n) #x开n次根
"""p = gmpy2.mpz(3)
q = gmpy2.mpz(11)
e = gmpy2.mpz(3)
l = (p-1) * (q-1)
d = gmpy2.invert(e,l)
c = gmpy2.mpz(26)
n = p * q
ans = pow(c,d,n)
print(ans)
通过脚本得到答案是5,解压另一个压缩包(解压时候密码是“答案是5”),一张图和一个文件,文件是16进制字符串,图片直接扔随波逐流看下,发现有个^5,找个脚本将文件所有字符^5操作
f1 = open('./亦真亦假','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:tmp = int(i,16) ^ 5dec_data += hex(tmp)[2:]print(dec_data)
得到一个zip,打开发现是doc文件,进去搜flag发现看不到,改下文字颜色得到flag
flag{_th2_7ru8_2iP_}
看到字符应该是个什么加密,没有思路找wp,是logo变成语言,直接找网站执行logo编程(可以把js下载到本地然后就不用在线使用了),得到RCTF_HeyLogo
flag{RCTF_HeyLogo}
看了下只有63 127 191 255四个数字,应该是tll隐写,分别改为00 01 10 11,拼接转ascii
import binascii
f2=open(','wb')
with open(','r') as f:lines = f.readlines()p = []for x in range(len(lines)):p.append(int(lines[x]))s=''for i in p:if(i==63):b='00'elif(i==127):b='01'elif(i==191):b='10'else:b='11's+=b
#print(s)
flag = ''
for i in range(0,len(s),8):flag+=chr(int(s[i:i+8],2))
flag=binascii.unhexlify(flag)
f2.write(flag)
得到一个zip包,是个伪加密,修改后得到base64加密字符串,套娃解base64后得到flag
import base64f = open(','rb').read()
while True:f = base64.b64decode(f)if b'{' in f:print(f)breakelse:continue
flag{189ff9e5b743ae95f940a6ccc6dbd9ab}
一共一个zip和一个jpg,看下zip不是伪加密,根据题目应该是明文攻击爆破,看下jpg,后面藏有修改了文件头的zip,改文件头后发现和原先zip中的crc32值相同,明文攻击爆破得到ACTF{3te9_nbb_ahh8}
flag{3te9_nbb_ahh8}
先看png,010打开后发现藏有zip,是个加密的,爆破下,不是,然后再看下png通道,发现red中藏有图片(随便red通道掩一个就行),下载后说密码是!@#$%67*()-+,解压zip得到一串数字。里面只有63、127、191、255,应该是ttl隐写(python代码见[SWPU2019]Network),解出来得到rar-passwd:0ac1fe6b77be5dbe,解压出来得到一个zip,看了下是个doc文件,改成doc后有一段隐写的字符,发现是base64,分行解出一堆01字符串,试了下ascii不是,然后看wp说是把1替换成空格,得到He1Lo_mi5c~
flag{He1Lo_mi5c~}
打开没有思路,看下wp是0宽隐写,找了个代码,可以直接得到flag
/*** Zero-Width Unicode Character Steganography* Copyright (c) 2015-2016 Kei Misawa* This software is released under the MIT License.* .php*/
(function(exports){'use strict';var chars = [];var radix = 0;var codelengthText = 0;var codelengthBinary = 0;/**Set characters of coded hidden text(zero width characters)args: string of zero width charactersreturn: null*/var setUseChars = function(newchars){if(newchars.length >= 2){chars = newchars.split('');radix = chars.length;codelengthText = il(Math.log(65536) / Math.log(radix));codelengthBinary = il(Math.log(256) / Math.log(radix));}return null;};/**Text Encoderargs:text: original text to be embedded (String)data: text to be hidden (String)return: unicode stego text*/var encodeText = function(text1, text2){return combine_shuffle_string(text1, encode_to_zerowidth_characters_text(text2), codelengthText);};/**Binary Encoderargs:text: original text to be embedded (String)data: data to be hidden (Uint8Array)return: unicode stego text*/var encodeBinary = function(text, data){return combine_shuffle_string(text, encode_to_zerowidth_characters_binary(data), codelengthBinary);};/**Text Decoderargs: unicode text with steganography (String)return: JavaScript Object {originalText: original text (String),hiddenText: hidden data (String)}*/var decodeText = function(text){var splitted = split_zerowidth_characters(text);return {'originalText': iginalText,'hiddenText': decode_from_zero_width_characters_text(splitted.hiddenText, codelengthText)};};/**Binary Decoderargs: unicode text with steganography (String)return: JavaScript Object {originalText: original text (String),hiddenData: hidden data (Uint8Array)}*/var decodeBinary = function(text){var splitted = split_zerowidth_characters(text);return {'originalText': iginalText,'hiddenData': decode_from_zero_width_characters_binary(splitted.hiddenText)};};setUseChars('u200cu200du202cufeff');exports.unicodeSteganographer = {encodeText: encodeText,decodeText: decodeText,encodeBinary: encodeBinary,decodeBinary: decodeBinary,setUseChars: setUseChars};/**Internal Functions*/var encode_to_zerowidth_characters_text = function(str1){var result = new Array(str1.length);var base = '';var i;var c;var d;var r;//var base = '0'.repeat(codelength); // IE not support this methodfor(i = 0; i < codelengthText; i++){base += '0';}for(i = 0; i < str1.length; i++){c = str1.charCodeAt(i);d = c.toString(radix);result[i] = (base + d).substr(-codelengthText);}r = result.join('');for(i = 0; i < radix; i++){r = r.replace(new RegExp(i, 'g'), chars[i]);}return r;};var encode_to_zerowidth_characters_binary = function(u8ary){var result = new Array(u8ary.length);var base = '';var i;var c;var d;var r;for(i = 0; i < codelengthBinary; i++){base += '0';}for(i = 0; i < u8ary.length; i++){d = u8ary[i].toString(radix);result[i] = (base + d).substr(-codelengthBinary);}r = result.join('');for(i = 0; i < radix; i++){r = r.replace(new RegExp(i, 'g'), chars[i]);}return r;};var combine_shuffle_string = function(str1, str2, codelength){var result = [];var c0 = str1.split(/([u0000-u002Fu003A-u0040u005b-u0060u007b-u007f])|([u0030-u0039]+)|([u0041-u005au0061-u007a]+)|([u0080-u00FF]+)|([u0100-u017F]+)|([u0180-u024F]+)|([u0250-u02AF]+)|([u02B0-u02FF]+)|([u0300-u036F]+)|([u0370-u03FF]+)|([u0400-u04FF]+)|([u0500-u052F]+)|([u0530-u058F]+)|([u0590-u05FF]+)|([u0600-u06FF]+)|([u0700-u074F]+)|([u0750-u077F]+)|([u0780-u07BF]+)|([u07C0-u07FF]+)|([u0800-u083F]+)|([u0840-u085F]+)|([u08A0-u08FF]+)|([u0900-u097F]+)|([u0980-u09FF]+)|([u0A00-u0A7F]+)|([u0A80-u0AFF]+)|([u0B00-u0B7F]+)|([u0B80-u0BFF]+)|([u0C00-u0C7F]+)|([u0C80-u0CFF]+)|([u0D00-u0D7F]+)|([u0D80-u0DFF]+)|([u0E00-u0E7F]+)|([u0E80-u0EFF]+)|([u0F00-u0FFF]+)|([u1000-u109F]+)|([u10A0-u10FF]+)|([u1100-u11FF]+)|([u1200-u137F]+)|([u1380-u139F]+)|([u13A0-u13FF]+)|([u1400-u167F]+)|([u1680-u169F]+)|([u16A0-u16FF]+)|([u1700-u171F]+)|([u1720-u173F]+)|([u1740-u175F]+)|([u1760-u177F]+)|([u1780-u17FF]+)|([u1800-u18AF]+)|([u18B0-u18FF]+)|([u1900-u194F]+)|([u1950-u197F]+)|([u1980-u19DF]+)|([u19E0-u19FF]+)|([u1A00-u1A1F]+)|([u1A20-u1AAF]+)|([u1AB0-u1AFF]+)|([u1B00-u1B7F]+)|([u1B80-u1BBF]+)|([u1BC0-u1BFF]+)|([u1C00-u1C4F]+)|([u1C50-u1C7F]+)|([u1CC0-u1CCF]+)|([u1CD0-u1CFF]+)|([u1D00-u1D7F]+)|([u1D80-u1DBF]+)|([u1DC0-u1DFF]+)|([u1E00-u1EFF]+)|([u1F00-u1FFF]+)|([u2000-u206F]+)|([u2070-u209F]+)|([u20A0-u20CF]+)|([u20D0-u20FF]+)|([u2100-u214F]+)|([u2150-u218F]+)|([u2190-u21FF]+)|([u2200-u22FF]+)|([u2300-u23FF]+)|([u2400-u243F]+)|([u2440-u245F]+)|([u2460-u24FF]+)|([u2500-u257F]+)|([u2580-u259F]+)|([u25A0-u25FF]+)|([u2600-u26FF]+)|([u2700-u27BF]+)|([u27C0-u27EF]+)|([u27F0-u27FF]+)|([u2800-u28FF]+)|([u2900-u297F]+)|([u2980-u29FF]+)|([u2A00-u2AFF]+)|([u2B00-u2BFF]+)|([u2C00-u2C5F]+)|([u2C60-u2C7F]+)|([u2C80-u2CFF]+)|([u2D00-u2D2F]+)|([u2D30-u2D7F]+)|([u2D80-u2DDF]+)|([u2DE0-u2DFF]+)|([u2E00-u2E7F]+)|([u2E80-u2EFF]+)|([u2F00-u2FDF]+)|([u2FF0-u2FFF]+)|([u3000-u303F]+)|([u3040-u309F]+)|([u30A0-u30FF]+)|([u3100-u312F]+)|([u3130-u318F]+)|([u3190-u319F]+)|([u31A0-u31BF]+)|([u31C0-u31EF]+)|([u31F0-u31FF]+)|([u3200-u32FF]+)|([u3300-u33FF]+)|([u3400-u4DBF]+)|([u4DC0-u4DFF]+)|([u4E00-u9FFF]+)|([uA000-uA48F]+)|([uA490-uA4CF]+)|([uA4D0-uA4FF]+)|([uA500-uA63F]+)|([uA640-uA69F]+)|([uA6A0-uA6FF]+)|([uA700-uA71F]+)|([uA720-uA7FF]+)|([uA800-uA82F]+)|([uA830-uA83F]+)|([uA840-uA87F]+)|([uA880-uA8DF]+)|([uA8E0-uA8FF]+)|([uA900-uA92F]+)|([uA930-uA95F]+)|([uA960-uA97F]+)|([uA980-uA9DF]+)|([uA9E0-uA9FF]+)|([uAA00-uAA5F]+)|([uAA60-uAA7F]+)|([uAA80-uAADF]+)|([uAAE0-uAAFF]+)|([uAB00-uAB2F]+)|([uAB30-uAB6F]+)|([uAB70-uABBF]+)|([uABC0-uABFF]+)|([uAC00-uD7AF]+)|([uD7B0-uD7FF]+)|([uD800-uDFFF]+)|([uE000-uF8FF]+)|([uF900-uFAFF]+)|([uFB00-uFB4F]+)|([uFB50-uFDFF]+)|([uFE00-uFE0F]+)|([uFE10-uFE1F]+)|([uFE20-uFE2F]+)|([uFE30-uFE4F]+)|([uFE50-uFE6F]+)|([uFE70-uFEFF]+)|([uFF00-uFFEF]+)|([uFFF0-uFFFF]+)/g);var c1 = [];var i;var j;for(i = 0; i < c0.length; i++){if((typeof c0[i] !== 'undefined') && (c0[i] !== '')){c1.push(c0[i]);}}var c2 = str2.split(new RegExp('(.{' + codelength + '})', 'g'));var ratio = c1.length / (c1.length + c2.length);/* slowwhile((c1.length > 0) && (c2.length > 0)){if(Math.random() <= ratio){result.push(c1.shift());}else{result.push(c2.shift());}}*/i = 0;j = 0;while((i < c1.length) && (j < c2.length)){if(Math.random() <= ratio){result.push(c1[i]);i++;}else{result.push(c2[j]);j++;}}c1 = c1.slice(i);c2 = c2.slice(j);result = at(c1).concat(c2);return result.join('');};var split_zerowidth_characters = function(str1){var result = {};iginalText = place(new RegExp('[' + chars.join('') + ']', 'g'), '');result.hiddenText = place(new RegExp('[^' + chars.join('') + ']', 'g'), '');return result;};var decode_from_zero_width_characters_text = function(str1){var r = str1;var i;var result = [];for(i = 0; i < radix; i++){r = r.replace(new RegExp(chars[i], 'g'), i);}for(i = 0; i < r.length; i += codelengthText){result.push(String.fromCharCode(parseInt(r.substr(i, codelengthText), radix)));}return result.join('');};var decode_from_zero_width_characters_binary = function(str1){var r = str1;var i;var j;var result = new il(str1.length / codelengthBinary));for(i = 0; i < radix; i++){r = r.replace(new RegExp(chars[i], 'g'), i);}for(i = 0, j = 0; i < r.length; i += codelengthBinary, j++){result[j] = parseInt(r.substr(i, codelengthBinary), radix);}return result;};return null;
})(this);
(注意如果遇到txt题目,最好用sublime打开,0宽隐写注意下隐藏的具体是哪个)
flag{whyNOT@sc11_4927aajbqk14}
发现内容为空,后来看有些行是6个空格,有些是12个,将6个的转为0,12个的转为1,得到01字符串,转ascii得到wctf2020{h3re_1s_y0ur_fl@g_s1x_s1x_s1x}
flag{h3re_1s_y0ur_fl@g_s1x_s1x_s1x}
看下没啥信息,把http流都存下来,每个16进制转ascii再base64都看下,发现有一段有嫌疑的字符串,但是没找到头绪,后来看说是直接分别每行逆序,然后再解base64可以得到
a='wIDIgACIgACIgAyIK0wIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMiCNoQD'
b='jMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjMyIjoQDjACIgACIgACIggDM6EDM6AjMgAzMtMDMtEjM'
c='t0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0iCNMyIjMyIjMyIjMyI'
d='6AjMgAzMtMDMtEjMwIjO0eZ62ep5K0wKrQWYwVGdv5EItAiM1Aydl5mK6M6jlfpqnrQDt0SLt0SL'
e='t0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLt0SLK0AIdZavo75mlvlCNMTM6EDM'
f='z0yMw0SMyAjM6Q7lpb7lmrQDrsCZhBXZ09mTg0CIyUDI3VmbqozoPW+lqeuCN0SLt0SLt0SLt0SL'
g='sxWZld1V913e7d2ZhFGbsZmZg0lp9iunbW+Wg0lp9iunbW+Wg0lp9iunbW+WK0wMxoTMwoDMyACM'
h='DN0QDN0QDlWazNXMx0Wbf9lRGRDNDN0ard0Rf9VZl1WbwADIdRampDKilvFIdRampDKilvVKpM2Y'
i='==QIhM0QDN0Q'print(a[::-1])
print(b[::-1])
print(c[::-1])
print(d[::-1])
print(e[::-1])
print(f[::-1])
print(g[::-1])
print(h[::-1])
print(i[::-1])
ffllaagg{{}}WWeellcc))00mmee__GGkkCC44FF__mm11ssiiCCCCCCCCCCCC!!,双写自己转下即可
flag{Welc0me_GkC4F_m1siCCCCCC!}
打不开音频,应该是文件损坏,看看不是修改文件头,发现不是,无思路求教wp,是文件异或,由于开头多次出现A1,用010直接将整个文件和A1异或(010中工具-十六进制运算-二进制异或),得到正确音频文件,直接听可以得到abcdfghijk
flag{abcdfghijk}
看下那个png,010打开发现有隐藏压缩包和图片,解开是aes.png,内容为Tokyo,应该就是aes解密秘钥,然后看音频,文件名说是看下文件尾,010打开得到aes加密密文U2FsdGVkX1/nSQN+hoHL8OwV9iJB/mSdKk5dmusulz4=,解一下得到CCGandGulu,通过这个解压最初始压缩包,得到一个音频,通过slienteeye得到MRCTF{Th1s_is_the_3nd1n9}
flag{Th1s_is_the_3nd1n9}
看流量包,其中有password字段是个url加密,解密得到 CFI{1ns3cur3_l0g0n}
flag{1ns3cur3_l0g0n}
010打开三张图片,文件尾均有zip压缩包一部分,合在一起得到压缩包,看下不是伪加密,爆破得到密码1234,看下hint说都是base解密,然后随波逐流一直解,base85-16-32-16-64得到MRCTF{Y0u_Are_4_p3rFect_dec0der}
flag{Y0u_Are_4_p3rFect_dec0der}
查看hint说提示补齐rsa秘钥格式,说明应该有加密,在tcp流中寻找秘钥,输入tcp contains “key”追踪tcp流,发现有个base64加密的jpg文件
通过chef转存成jpg,打开查看应该就是秘钥,ocr识别后补全开头结尾成为秘钥文件。
将秘钥文件导入到wireshark中,wireshark编辑-首选项-Protocols-TLS-Edit
导入后搜索http即可找到内容,查看http流可以找到flag
flag{0ca2d8642f90e10efd9092cd6a2831c0}
看了下以为是藏在了压缩包里面,010打开没有信息,7z打开也没发现藏东西,求助wp,说是有隐藏的1,然后将所有位置改为黑底色,调整大小就是个码
看wp说是汉信码,下载个中国编码app扫描得到flag
flag{9ee0cb62-f443-4a72-e9a3-43c0b910757e}
010打开,发现后面藏有zip,将zip单独取出来解压得到hidden_binary文件,放到kali里面看下是个elf,执行下得到utflag{2fbe9adc2ad89c71da48cabe90a121c0}
flag{2fbe9adc2ad89c71da48cabe90a121c0}
010打开图片,文件尾藏有zip文件,取出来后解压得到abc文件,放到kali中看下是个txt文件,打开得到watevr{7h475_4c7u4lly_r34lly_cu73_7h0u6h}
flag{7h475_4c7u4lly_r34lly_cu73_7h0u6h}
打开图片是个全粉的照片,010打开,搜下22(题干中提示内容,0x22,0x44代表伤疤两种细胞),拷出来将D替换为1,"替换为0,看下ascii码不对,反过来以后再看下也不对,一共256位,推测可能是二维码,两个都试下转二维码,也不对,没有思路看下wp,说是需要D替换为1,"替换为0,然后倒序转ascii,再倒序输出(说是因为题干中提到了屁股,所以猜测倒序)
flag="0110110000101100000011000110110010011100101011000000110010000110101011000010110010001100000111000010110001000110001001101010110001100110101001100110110001000110011011001010011010101100010001100010110011000110101001100010110011001100000111001100110001001100"
flag=flag[::-1]
#print(flag)
x=""
for i in range(len(flag)//8):x += chr(int(flag[8*i:(i+1)*8],2))
print(x[::-1])
得到6406950a54184bd5fe6b6e5b4ce43832
flag{6406950a54184bd5fe6b6e5b4ce43832}
看到是个二维码缺少了左上和左下两个定位点,用画图将右上定位点复制到左上左下,获取二维码,扫码得到字符串(CQR扫了没出来,微微二维码扫出来了)放随波逐流里面解下是个base32得到QCTF{Pretty_Sister_Who_Buys_Me_Lobster}
flag{Pretty_Sister_Who_Buys_Me_Lobster}
下载一共四个doc文件,均无法正常打开,010看下,开头夹杂了一段IComeFrom……,根据题目提示喜欢DBAPP标记,所以应该对应的我是C这个文件,将这部分与其他位保持一致修改为FF,可以打开文件。
看下文件内容,发现行间距不同,有1.5倍行距以及单倍行距,推测1.5倍对应的是1,单倍对应的是0,得到100100100001,根据题干md5加密得到d473ee3def34bd022f8e5233036b3345
flag{d473ee3def34bd022f8e5233036b3345}
是个签到题,打开md文件直接就能看到INSA{Youre_sane_Good_for_you}
flag{Youre_sane_Good_for_you}
图片是个二维码,扫码得到一个网址,中间有一串数字,感觉应该和这个有关10210897103375566531005253102975053545155505050521025256555254995410298561015151985150375568,首先不是十六进制,那看看是不是ascii,102 108 97 103正好是flag,那就把所有数字隔开,转ascii得到flag%7B5d45fa256372224f48746c6fb8e33b32%7D,%7B应该是url加密,解密得到flag{5d45fa256372224f48746c6fb8e33b32}
flag{5d45fa256372224f48746c6fb8e33b32}
不知道文件类型,放到kali里面看下,是个xml类型,应该是个office,首先先用doc,打开发现有个密码,用Accent Office Password Recovery破解,得到密码9919
然后发现打开不行,换成ppt试下,打开了,看下内容,发现倒数第二页有隐藏文字,全选变红发现flag
flag{okYOUWIN}
看完题目完全没思路,直接看wp跟着做
先看流量包,所有的icmp流量后面都跟了一串字符串,想办法提取出来
把流量包放到kali里面,用tshark提取下,得到
tshark -r out.pcap -T fields -e data >
发现有重复数据,python去下重
with open(', 'r') as file:res_list = []lines = adlines()print('[+]去重之前一共{0}行'.format(len(lines)))print('[+]开始去重,请稍等.....')for i in lines:if i not in res_list:res_list.append(i)print('[+]去重后一共{0}行'.format(len(res_list)))print(res_list)with open(', 'w') as new_file:for j in res_list:new_file.write(j)
然后把十六进制转字符
import binasciiwith open(','r') as file:with open(','wb') as data:for i adlines():data.write(binascii.unhexlify(i[:-1]))
然后去掉开头的start以及首尾两行,放到chef里面base64发现是个zip包
解压得到一个gif,是时间隐写(详见大佬写的gif隐写gif隐写分析),把gif放到kali里面直接命令解得到每帧之间的间隔
identify -format "%T" flag.gif
将包含的20转为0,50转为1,然后二进制转ascii,得到mD5_1t,MD5加密后得到f0f1003afe4ae8ce4aa8e8487a8ab3b6
flag{f0f1003afe4ae8ce4aa8e8487a8ab3b6}
Audacity打开,调整下距离,发现波形有粗有细,判断应该粗细分别对应01,之后没思路了。
看下wp发现是个新知识,钥匙信号(PT224X) = 同步引导码(8bit) + 地址位(20bit) + 数据位(4bit) + 停止码(1bit)。波形图中细的对应0,粗的对应1,得到0 01110100101010100110 0010 0 ,中间20位即为数据位
flag{01110100101010100110}
遇到知识盲点,直接看wp,voip是互联网语音协议,也就是ip电话。
看下流量包中都是相关协议,wireshark可以直接播放语音内容,找到电话-voip通话,点击播放流即可听到语音内容,后面就是听力环节(非常不清晰),得到flag
flag{9001IVR}
打开音频,没有什么思路,看下wp是慢扫描,需要在kali上面装qsstv软件
apt-get install qsstv
装完之后qsstv运行下软件,是图形化界面,选Options-Sound-From file,然后选确定,等待画面出现
flag{6bdfeac1e2baa12d6ac5384cdfd166b0}
首先拿到一个wav音频文件,放到Audacity中没有发现,010打开也没发现,binwalk和foremost也没有分理出内容。没有思路看下wp,说是使用steghide,可以无密码分解出txt
打开txt是个微盘链接,进去后下载得到png,直接打不开,010查看发现文件头被改了,修改后可以打开得到遗传Unicode编码
解出来得到感觉像加法,相加得到5304,试下果然是flag
flag{5304}
开局五张图,先都010打开看下,
第五张末尾有个提示,直接给了个字符串,先记录下来Yzcllfc0lN
然后第四张图最后也有相应字符串,也记录下来cExlX1BsY
然后看第三张,没啥思路,看第二张,最后藏有7z开头的字符串
拉出来转存成7z试下,打开不了,没思路看下第一张
第一张看下长宽和其他不一样,crc爆破下长宽应该是227*453,修改后发现图片最上面变了,没别的发现
后面看wp,图一修改完长宽后,chunk2和chunk3缺少IDAT头,需自行补上,补上后得到完整图片
之后Stegsolve打开,在Blueplane2中找到隐藏二维码,扫码得到字符串ZmxhZ3s0X3
第二图7z部分其实和zip相似,是377A0304,将所有的377A改成504B,得到压缩包,然后看里面文件的crc都一样,只有618不同打开看下得到字符串1RVcmVfc
第三张图的每一个chunk中uint32 crc都对应的一个ascii码,将所有连在一起得到字符串3RlZ30=
将五个字符串连在一起按照15423顺序拼接ZmxhZ3s0X3 Yzcllfc0lN cExlX1BsY 1RVcmVfc 3RlZ30=,转base64得到flag{4_v3rY_sIMpLe_PlcTUre_steg}
flag{4_v3rY_sIMpLe_PlcTUre_steg}
首先看下apng是什么,是个类似于gif的动图,可以用火狐打开,网上有专门的apng分离工具apng图片分隔
通过工具分解apng文件可以找到四个有二维码的图片
第一个二维码需要用ps拉伸下,在PS里面编辑-变换-扭曲,拉伸下可以扫出第一个信息flag{a3c7e4e5
第二个用Stegsolve扫下原图,切换下图层可以清晰看到二维码,扫码得到-9b9d
第三、四个可以直接扫出来分别为-ad20、-0327-288a235370ea},拼接得到flag
flag{a3c7e4e5-9b9d-ad20-0327-288a235370ea}
解压出来有一个hint.zip,先看下这个,解出来有个hh.jpg还有,先看txt打开是AAencode加密,随波逐流解密,得到welcom3!
有密码和图片大概率是jpg隐写,steghide解下试试,得到一串非对称加密密文。
看下图片详细信息,里面提示有密钥,解下密文出来提示想想剑龙
没思路看下wp,说是Stegosaurus(剑龙)隐写剑龙隐写
直接跑脚本得到flag
flag{3teg0Sauru3_!1}
题目是一个img文件,应该是个内存取证,需要用到volatility工具,原来没做过类似题目,直接跟着wp操作下来
首先通过imageinfo命令先看下这段内存数据的摘要信息,找到对应的版本profile
volatility -f memory.img imageinfo
之后通过pslist命令看下执行的进程,发现有个dump进程
volatility -f memory.img --profile=Win2003SP1x86 pslist
再通过cmdscan看下原来cmd中保留的命令,发现dumpit这个程序中有flag,给dump下来
volatility -f memory.img --profile=Win2003SP1x86 cmdscanvolatility -f memory.img --profile=Win2003SP1x86 memdump -p 1992 --dump-dir=./
把dmp文件foremost分离后,可以得到两张图片,一个写了key和iv,另一个扫描二维码得到密文jfXvUoypb8p3zvmPks8kJ5Kt0
vmEw0xUZyRGOicraY4=,那就是aes加密,解下得到flag
flag{F0uNd_s0m3th1ng_1n_M3mory}
流量题,先看下协议分级,发现有ftp、http、还有tls加密的流量,大概率需要找私钥解密
先看下http流量,发现没有什么东西,再看下ftp流量,发现有传输.key文件
再看下前后的tcp流,发现下个流传输的就是明文私钥文件,存下来存成scc.key
将秘钥文件导入到wireshark中,wireshark编辑-首选项-Protocols-TLS-Edit
之后多了很多http流,搜下flag http contains “flag”,大小写都搜下,大写FLAG可以找到
flag{OkThatWasWay2Easy}
签到题,打开直接看到答案INSA{YouRe_Crazy_and_I_Love_it}`
flag{YouRe_Crazy_and_I_Love_it}
签到题,打开直接看到答案INSA{Welcome}
flag{Welcome}
题目是个gif,打开看了下没有提示,分解了下gif也只有一张,各种方法都试了没思路,看下wp
用PS打开,每个色带取色会发现不同颜色只有最后两位不同,将这些保存,16进制转ascii,得到flag
flag{aapjes}
原图左上角有个黑白数据块,没找到具体该怎么使用,010,binwalk,Stegsolve都试了下没有发现,看下wp。
说是左上角这个黑白色块黑色为1,白色为0,转化为01字符串
连到一起转ascii得到
flag{12345678}
看题目frequency应该是频率,大概率是往字频考虑。打开doc看下字体,发现有隐藏文字,解开看下很长一串
然后看提示说有两截,再看下文件属性,发现还有一段字符串,连在一起解下base64,将解出来得到字符串跑下字频排序脚本
# -*- coding:utf-8 -*-
#Author: mochu7
alphabet = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890!@#$%^&*()_+- =\{\}[]"
strings = open('./1.txt').read()result = {}
for i in alphabet:counts = unt(i)i = '{0}'.format(i)result[i] = countsres = sorted(result.items(),key=lambda item:item[1],reverse=True)
for data in res:print(data)for i in res:flag = str(i[0])print(flag[0],end="")
得到actfplokmijnuhbygvrdxeszwq,缺了大括号补上即为flag
flag{plokmijnuhbygvrdxeszwq}
签到题,打开直接看到答案INSA{Youre_crazy_I_like_it}
flag{Youre_crazy_I_like_it}
看下压缩包被加密,爆破下发现不行,010打开是伪加密,修改下解压出来
看了下流量包中大多为tls流量,首先想是不是tls秘钥,搜索下tcp contains "key"大小写都试了找不到,试了下binwalk也没有内容,看下wp
icmp中包含有隐藏信息,放到kali里面用tshark把data内容提取出来
tshark -r attachment.pcapng -T fields -e data >
提取后整理下内容,把空行以及冗余数据删除下,用cyberchef 16进制转ascii,得到
中间字符串Q1RGe0p1c3RBUzBuZ0FiMHV0UDFuZ1Awbmd9转下base64得到CTF{JustAS0ngAb0utP1ngP0ng}
flag{JustAS0ngAb0utP1ngP0ng}
本文发布于:2024-01-28 13:47:12,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064208377844.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |