比赛地址:Buuctf靶场
我只想出手把手教程,希望大家能学会然后自己也成为ctf大佬,再来带带我QWQ
打开文件,winhex照妖镜照一下就发现了
flag{870c5a72806115cb5439345d8b014396}
Stegsolve用专业工具一看就出来了flag
flag{st3g0_saurus_wr3cks}
点击程序他给我一个txt
notepad 1.txt:flag.txt
使用一下快捷程序
swupctf{ddg_is_cute}
给了图片binw分一下,有rar,gif 加密了破解一下Stegsolve查看gif一帧一帧看找到了通道中看到了二维码
flag{shanxiajingwu_won_the_game}
2张gif图片,一张打不开缺少数据头,打开winhex加进去
flag{zhi_yin_you_are_beautiful}
解压图片,发现图片属性面板有密
文破解就是abc ,然后
> outguess -k "abc" -r mmm.jpg 1.txt
就出来了
ACTF{gue33_Gu3Ss!2020}
举报题目歧视人哼~,把图片用foremost attachment.jpg分离一下
有2个东西一个是zip一个图片,然后吗打开zip发现是颜文字加密
随便按一个F12就出来了双十一快乐,然后以为是flag 然后不是,翻译成英文对了。
flag{happy double eleven}
把excel 拉入winhex,找一下flag,尽然就找到了
flag{office_easy_cracked}
放入winhex看到了派大星受伤的地方拷贝出来
发现正好有256,32个二进制,然后转换一下用txt的替换
先后测试了很多,比如转换成ascii,MD532,最后不行了,就百度一下找到了大佬的解码脚本
def bin_to_str(s): return ''.join([chr(i) for i in [int(b, 2) for b in s.split(' ')]]) a = "01101100 00101100 00001100 01101100 10011100 10101100 00001100 10000110 10101100 00101100 10001100 00011100 00101100 01000110 00100110 10101100 01100110 10100110 01101100 01000110 01101100 10100110 10101100 01000110 00101100 11000110 10100110 00101100 11001100 00011100 11001100 01001100" a = a.split(' ') flag='' for i in a: test=i[::-1] flag+=bin_to_str(test) print flag
flag{6406950a54184bd5fe6b6e5b4ce43832}
找了半天终于找到了
0086 1562 2535 5174 中文电码
人 工 智 能
bnhn s wwy vffg vffg rrhy fhnv 五笔编码
也 要 从 娃 娃 抓 起
flag{3b4b5dccd2c008fe7e2664bd1bc19292}
下面转成10进制,所有-128,在转ASCII。最后脚本
# -*- coding:utf-8 -*-zhua # author: mochu7 def hex_str(str):#对字符串进行切片操作,每两位截取 hex_str_list=[] for i in range(0,len(str)-1,2): hex_str=str[i:i+2] hex_str_list.append(hex_str) print("hex列表:%s "%hex_str_list) hex_to_str(hex_str_list) def hex_to_str(hex_str_list): int_list=[] dec_list=[] flag='' for i in range(0,len(hex_str_list)):#把16进制转化为10进制 int_str=int('0x%s'%hex_str_list[i],16) int_list.append(int_str) dec_list.append(int_str-128)#-128得到正确的ascii码 for i in range(0,len(dec_list)):#ascii码转化为字符串 flag += chr(dec_list[i]) print("转化为十进制int列表:%s "%int_list) print("-128得到ASCII十进制dec列表:%s "%dec_list) print('最终答案:%s'%flag) if __name__=='__main__': str='d4e8e1f4a0f7e1f3a0e6e1f3f4a1a0d4e8e5a0e6ece1e7a0e9f3baa0c4c4c3d4c6fbb9b2b2e1e2b9b9b7b4e1b4b7e3e4b3b2b2e3e6b4b3e2b5b0b6b1b0e6e1e5e1b5fd' print("字符串长度:%s"%len(str)) hex_str(str)
That was fast! The flag is: DDCTF{922ab9974a47cd322cf43b50610faea5}
查看数据发现了base64加密,然后
看一下头
少了点东西给他加上头data:image/jpeg;base64,
flag{209acebf6324a09671abc31c869de72c}
下载文件解压到文件夹中,然后用D盾给大家一个网址下载
扫描一下发现2个可疑的文件找一下
其中txt找到了flag
flag{ba8e6c6f35a53933b871480bb9a9545c}
使用foremost分离一下得到带锁的压缩包
然后在数据中找tcp数据流在7的时候找到了一堆16进制代码然后放进winhex里面,发现是jpg图片,保存改个格式
Th1s_1s_p4sswd_!!! = 解压密码
flag{3OpWdJ-JP6FzK-koCMAK-VkfWBq-75Un2z}
这题多半靠猜,请大家关注这个大佬看看详细方法,虽然我还是没看懂,ida也不是很会~呜呜呜,我没救了这个大佬哦Sea_Sand
在ida找到了似乎是flag,把他整合起来{%_Buff3r_0v3rf|0w}
似乎里面,少了一点东西百度一下,发现了函数
算一下
{123_Buff3r_0v3rf|0w},也知道了这个软件的密码是122xyz
flag{123_Buff3r_0v3rf|0w}
用Audacity看,发现是莫斯密码解码一下,发现有重复的去掉。
flag{f029bd6f551139eedeb8e45a175b0786}
用看图软件看一下,发现所有颜色0通道里面东西,然后看一下发现了png格式。(对了这个图片导出来会应为头多了2个删除就好了。)给了图片只有一半爆破一下高度,果然高度问题,扫描就有了一个网盘地址(PS:暴躁!!!禁止套娃鸭)看起来不在txt中
在大佬网址找到免费的Ntfsstreamsedotor,然后扫描一下
发现的pyc的发吧编译网址看到了十进制老规矩脚本救助。
import base64 text = ['96','65','93','123','91','97','22', '93','70','102','94','132','46','112','64','97','88','80','82','137','90','109','99','112'] text = text[::-1] def decode(): code = '' for i in range(24): if(i%2 == 0): a = int(text[i]) - 10 else: a = int(text[i]) + 10 a = i ^ a code = code + chr(a) print(code) decode()
flag{Y@e_Cl3veR_C1Ever!}
对了附送大家一个破解算出png图片高度的脚本
import zlib import struct filename = '1.png' with open(filename, 'rb') as f: all_b = f.read() crc32key = int(all_b[29:33].hex(),16) data = bytearray(all_b[12:29]) n = 4095 #理论上0xffffffff,但考虑到屏幕实际/cpu,0x0fff就差不多了 for w in range(n): #高和宽一起爆破 width = bytearray(struct.pack('>i', w)) #q为8字节,i为4字节,h为2字节 for h in range(n): height = bytearray(struct.pack('>i', h)) for x in range(4): data[x+4] = width[x] data[x+8] = height[x] crc32result = zlib.crc32(data) if crc32result == crc32key: print("宽为:",end="") print(width) print("高为:",end="") print(height) exit(0)
别问问就是大佬哪里找的,谢谢那位大佬~