type
Post
status
Published
date
Nov 2, 2022
slug
2
summary
isctf出题记录
tags
出题记录
category
MISC
icon
password
写在开头:想把misc的一些简单的知识点串在一起,更考核选手的综合能力,但是胡乱的套会导致其中解码过程中出现很多的错误,所以需要给选手一些明确的hint,比如用什么网站进行的加密,比如一个简单的例子,千千秀字的栅栏,用bugku是解不出来的(反正我枚举解不出,就当他解不出了),这些知识点都是我学习misc刚开始一个月里面刷的题,所以就选用了过来。
flag
首先拿到了一个flag
ISCTF{W0_b8_4_t4O_sH3n_!!!_Sh31_4_t40_sheN}
千千秀字栅栏
给出了一个千千秀字的hint,先留档
IW4s!10}S0_H!__C_t3_4sTb4nS_hF8O_hte{__!34N
与佛论禅
佛曰有好几种,新佛曰跟佛曰,我这边出了一个问题就是与佛论禅也有两种,一种是佛曰,一种是佛又曰,这两个的网址是不一样的
虽然说问题不大,但是谨记
佛又曰:楞苏喝帝婆醯伽婆夜婆数遮钵娑孕度利伽咩唵钵呼度曳婆写曳尼迦卢罚数菩伽嚧阇耶俱钵阿地怛度卢咩阇萨钵俱数帝舍伽呼写阇遮墀楞室提豆哆咩数输咩谨皤俱吉怛驮伊伽埵漫漫
base64
然后就是简单的套了一个base
5L2b5Y+I5puw77ya5qWe6IuP5Zad5bid5amG6Yav5Ly95amG5aSc5amG5pWw6YGu6ZK15aiR5a2V5bqm5Yip5Ly95ZKp5ZS16ZK15ZG85bqm5puz5amG5YaZ5puz5bC86L+m5Y2i572a5pWw6I+p5Ly95Zqn6ZiH6IC25L+x6ZK16Zi/5Zyw5oCb5bqm5Y2i5ZKp6ZiH6JCo6ZK15L+x5pWw5bid6IiN5Ly95ZG85YaZ6ZiH6YGu5aKA5qWe5a6k5o+Q6LGG5ZOG5ZKp5pWw6L6T5ZKp6LCo55qk5L+x5ZCJ5oCb6amu5LyK5Ly95Z+15ryr5ryr
AES(https://www.sojson.com/encrypt_aes.html)
简单套一个AES,也是选用了最简单的无脑的没有偏移的AES,但是我不是很清楚他的key是怎么处理的,我使用相同的key去别的网站加密得到的不是一个密文(日后有空去看看,估计是没空的),所以这边也给出了hint,加密网站,按下不表*2
U2FsdGVkX19fGDp6HBRwc0ot+XQFmWrHPBhG0F2Y4JyJhRomofwFXBnUZUPnQc9V hviHIwagGUMvhlGtnHOjWUN/69h1eku4YWeTL2bswkotj1GImP36TzV3G+z1yYqy LGez1wUKbtuNpVfSU2/u79oAubWN8mVtMUalmNoYjtP3adjM5p/zXL6kul+kSJ95 BX50RqBV64MyFs1rNM7r3wI8W8FWNYpvDdzETKuCMEQwXtaH1HS6p/P5kuMT7OIW 3ViHDuthWBS+Z1sUZh6Hk2R4db3HrZYCLZ5QLpoNIt2ZrtVwMGPdLeI92v5w++0o DmW2pD7FICDFEVXB+DH+WTvdTYfXGM6635R94r72bREmE1zELyMy3iMqiF7UOmd3 CfEhlz5aiv9RBGz2crCaDJ/ZMY9+qEj4JEYJJMFljKG71kXUC/xvNcGTb7oN4odk OKV+I3Tuc8GcYq03zczLkA== key=this_is_pass
36进制
这边是套了一个36进制,如果细心点的话,应该是可以发现里面文本的内容是从0-9,a-z,26个,然后我也是给hint了,生怕看不出来,36进制怎么转码呢,直接int 36就可以,然后再加个long_to_bytes就可以解码了
pfbshz6vy6cw9zqe9d2xuv0pevbyzmq3biqj0bbbywfowy6d2vcfamwd144au0bioijq7oyf32grvzxtodeob5quei6bufpganywzzvyuj0jv9fxn3ghgisaemw5d59ftp84lo4wseqohfhbfpily6s0d3bbs9kg5xvq481b2ykbucfwlb2290l84b9d8i7r1ofmlxtnwglzt1t3ko602oryor147dnnotdn2gmzd68yrg3lna118ppj7oygmf2yjn049fidfih3a6axagk2oxcq0diwilkahq6f0wvekvmcbzdeo44r9n6k2pdvrpubm0k1lb67f50811vaxgwbfyx2ti3w1rlvysmemq649qt8g4cjps62xss63mq30mi43mz695t1t2egqvh8q2hjr3s5mta9l5t8wid5s8q7im3sc4lsaxmc6j81macut49clhweomtrhh5d4pk0n6rfesfsesaj18w9x7otzu4v6p74vtpec8spkbhc99g04l2mz7zkk0bwghov60xgrr53f3e55bxi6ztlzwu23lwd9k985vrn4skbcb978i8knspffief1r8b7j5kdfabz8qw8sxcp70xmt9eqysxikcojpahyr9jq9opg115nz4zub2gfre0znbr0rdrw777h2h528yz1offlzfi610w6e4lwgh2o71ywdl6a6ursgb8mo2o54drm8x9cf0k89xbhb5pqwyjw0lvd4cvv8m65
morese,wav
忘记复制密文了,这边应该是吧36进制转成莫斯了吧,出题脚本给你们看看
import timeimport winsoundfreq1=1500 #短音发声频率freq2=2000 #长音发声频率interv_short = 100 #短音“.”的发声时长interv_long = 300 #长音“-”的发声时长msg = input('输入要发送的消息:')msg = msg.upper() #转换大写,摩斯码中不区分大小写code_dict = {'0': '-----', '1': '.----', '2': '..---', '3': '...--', '4': '....-', '5': '.....', '6': '-....', '7': '--...', '8': '---..', '9': '----.', 'A': '.-', 'B': '-...', 'C': '-.-.', 'D': '-..', 'E': '.', 'F': '..-.', 'G': '--.', 'H': '....','I': '..', 'J': '.---', 'K': '-.-', 'L': '.-..', 'M': '--', 'N': '-.', 'O': '---', 'P': '.--.','Q': '--.-', 'R': '.-.', 'S': '...', 'T': '-', 'U': '..-', 'V': '...-', 'W': '.--', 'X': '-..-','Y': '-.--', 'Z': '--..', '.': '.-.-.-', ':': '---...',',': '--..--', ';': '-.-.-.', '?': '..--..', '=': '-...-', "'": '.----.', '/': '-..-.', '!': '-.-.--','--': '-....-', '-': '..--.-', '"': '.-..-.', '(': '-.--.', ')': '-.--.-'}for m in range (len(msg)): print('m:',m) code = code_dict.get(msg[m]) if code is None: print('该符号不在字典中') continue print('code',code) for c in code: if c == '.': ret = winsound.Beep(freq1,interv_short) # print('ret = ',ret) time.sleep(0.1) #加入0.1s延时 elif c == '-': ret = winsound.Beep(freq2,interv_long) # print('ret = ',ret) time.sleep(0.1) else: print('错误编码') time.sleep(1)
脚本也是网上B站上找的,不是自己写的,但是看了下也是可以理解的,主要就是winsound.Beep控制声音长短,发出声音,然后使用电脑的立体声混音录就好了(这个灵感来自春哥,之前看群里讨论mmstv看到的)
然后就得到了一个.wav文件了
这边将前面的hint都给到了Audacity的元数据标签里面(编辑元数据)
但是我没有保存,所以直接查看属性不能看到。
百度网盘
这边因为文件太大了,然后就直接转网盘变小
https://pan.baidu.com/s/1Hkp7pt-7Yg08_7v5zwFMuA?pwd=t51r
零宽
将百度网盘的链接存在一个零宽里面去,这边可能好多人都还没搞懂零宽到底怎么搞,只会复制进去,然后解码,其实很简单
一般来说怎么判断就是把字符全选,复制到kali虚拟机里面
我们可以看到,在字符串中有着许多的不可见字符就是Unicode字符,由此我们可以得到
关于这边解密的东西,不是乱选的,而是根据上面所包含的字符来选的,然后直接decode就可以得到
压缩,逆序,转01,改黑白,出二维坐标index.txt
然后将得到的文本进行压缩包,然后读取,将他逆序,转成01字符串,再将01字符串转成黑白图片。可以将他看成二维数组,给出坐标。
from Crypto.Util.number import *import mathimport PILfrom PIL import Imagewith open('flag.zip','rb') as f: data = f.read()[::-1] a=bin(bytes_to_long(data))[2:].zfill(len(data)*8)print(len(a))print(math.sqrt(48432))print(221*221-48432)# print(long_to_bytes(int(a,2)))a='0'*409+aMAX = 221img = Image.new("RGB",(MAX,MAX))str1 = ai=0print(str1[53])with open('index.txt','w') as f: for y in range (0,MAX): for x in range (0,MAX): # print(i) # print(str1) if(str1[i] == '1'): img.putpixel([x,y],(0, 0, 0)) str2=str(x)+','+str(y) f.write(str2) f.write('\n') else: img.putpixel([x,y],(255,255,255)) i = i+1# img.show()f.close()img.save("1.png")
这边是给了一个hint的,就是梅花香自苦寒来,这算是我第一个接触python写脚本的题目吧,buu上比较靠前的一个misc题的(不知道师傅们能不能理解,如果不能理解的话给大家磕个头了)解题脚本就不给了,网上搜一搜就有了
flag.png oursecret 秘钥:lsb
一个oursecret,藏文件,经典,秘钥就藏在lsb里面了
藏坐标 index.txt
秘钥 isctfgood
然后再进行一次百度网盘缩小
百度网盘 https://pan.baidu.com/s/1QjFr09a7XRS5J7ZXAPbJsQ?pwd=tpde
slienteye 秘钥
将链接藏在一个jpg文件中
这边在出题的时候发现了一个很神奇的现象(之后再去研究研究,有懂的师傅可以告诉我呜呜)
秘钥就是jpg图片改宽高,这个考点不是很常见,所以也给了hint,但是不能改差,改出错了会导致slienteye读不出来数据了
ftp文件传输流量
简单的套一层流量,水平有限,并且考虑到比赛新生难度,也是没有出的很奇怪,直接导出数据就可以了
套个取证,desktop压缩包 压缩包密码是开机,密码
这边就是最开始了地方了,一个找取证的密码,一个filescan。
总结
个人感觉还是搜一搜,可以做的,emmmm,给大家磕一个
- 作者:Dr34m
- 链接:https://tangly1024.com/article/2
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。