i春秋-Recreators
导语点击这里去答题
Recreators首先下载并解压,可以看到没有拓展名直接winhex打开看看由这里可以看出该文件应该是一个VMware虚拟磁盘镜像,那么修改拓展名为.vmdk,再用winhex打开。可以看到,winhex是由对vmdk格式的解析的。打开可以看到这些内容,带$的都是系统文件,肯定先看misc.mp4保存出来,打开看看经典动漫recreator的ED。来到了隐写的部分
此时一般思路是使用binwalk之类的看看有没有附加的东西,或者直接拿16进制编辑器看看,我选择了后者,因为前面都是视屏内容,我们从后往前看。在某个位置发现了很奇怪的东西,全整下来,一顿操作,得到flag具体步骤是hex解码hex解码base32解码base32解码base32解码base64解码base64解码hex解码base32解码base64解码base64解码
#! python2import base64a="344134413438343535353532353334453442354134413535333435333332344634413445343335353 ...
i春秋-手贱的A君
导语点击这里去答题
手贱的A君关键词:数据库,md5,拿着这一串莽头去md5在线解密果然不会那么简单的。定睛一看,这md5好像是33位啊¿定睛两看,这怎么害有个l啊?众所周知md5的内容里只有0-9和abcdef呀?删去l再解密,果然正确了。
md5MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。md5的算法可以分为五步,描述如下:第一步,补位:MD5算法先对输入的数据进行补位,使得数据的长度(以byte为单位)对64求余的结果是56。即数据扩展至LEN=K*64+56个字节,K为整数。补位方法:补一个1,然后补0至满足上述要求。相当于补一个0x80的字节,再补值为0的字节。这一步里总共补充的字节数为0~63个。
第二步,附加数据长度:用一个64位的整数表示数据的原始长度(以bit为单位),将这个数字的8个字节按低位的在前,高位在后的顺序附加在补位后的数据后面。这时,数据被填补后的总长度为:LEN = K64+56+8 ...
i春秋-DoYouKnowUpload
导语点击这里去答题
main打开看到是一个图片上传首先假设它妹有拓展名过滤,直接传个一句话。假设不成立。把一句话的拓展名改为.jpg,打开burpsuit,在发的时候再把jpg改成php
会返回给你它的路径。访问一下看看是不是就是那个路径发现确实如此。用蚁剑连接,可以看到html目录下有一个config.php内容如下所以直接去连数据库然后一顿找,就找到了flag
i春秋-流量分析
导语点击这里去答题
正文下载题目并解压,可以看到两个文件,一个pcapng和一个log先notepad看看这个log发现全是乱码,但是在179行有于是打算复制下来放在winhex看看,然而178行也有部分内容,我又选不上,于是winhex打开log,然后复制内容粘贴到notepad,再把notepad的内容复制,贴回winhex,注意要选ascii hex。可以看到Rar!,于是存出来,把拓展名改为rarrar是被加密的于是wireshark查看pcapng,直接导出http对象(md还有个这图吓我一跳)看看html,可以找到一段jsfuck复制下来到浏览器控制台试一下输入密码,拿到flag
BUU刷题日记-zip
导语pillar的刷题日记
zip开局一个压缩包,打开全是压缩包
每个压缩包都不大,crc暴破。但是并不是很会,就去看了别人的脚本
import zipfileimport stringimport binasciidef CrackCrc(crc): for i in dic: for j in dic: for k in dic: for h in dic: s = i + j + k + h if crc == (binascii.crc32(s.encode())): f.write(s) returndef CrackZip(): for i in range(0,68): file = 'out'+str(i)+'.zip' crc = zipfile.ZipFile(file,'r').getinfo('data.txt').CRC CrackCrc(crc) print('\r'+"loading: ...
BUU刷题日记-SWP
导语pillar的刷题日记
[ACTF新生赛2020]swp开局一个流量包
估计是用wget去下载什么东西,直接导出html对象
看到一个secret.zip,解压出来
打开看一眼,发现是个elf,放到kali里,加运行权限,看看能不能直接运行
运行?运行歌姬吧,直接strings
得到答案actf{c5558bcf-26da-4f8b-b181-b61f3850b9e5}
BUU刷题日记-弱口令
导语pillar的刷题日记
弱口令开局一个带密码的压缩包。直奔注释
看上去没有,但实际上有
在编辑器里更容易看
猜测是摩斯密码,用-替换tab,用.替换空格
解压得到一张赵丽颖
然后用https://github.com/livz/cloacked-pixel进行提取,密码是123456
(不懂就问,这个和stegpy那个有什么区别啊)
就得到flag了
flag{jsy09-wytg5-wius8}
PE病毒
导语这是我软件安全作业,希望对想要学习PE病毒编写的同学们有所帮助。
目标编写一个PE文件传染程序infect.exe,功能要求如下:
infect.exe运行后,向同目录下的notepad.exe程序植入“病毒载荷”代码.
infect.exe不能重复传染notepad.exe.
notepad.exe被植入“病毒载荷”后,具备如下行为:一旦执行,就会向其所在目录写入一个txt文件,文件名为:学号-姓名.txt,文件内容为空。注意:这里的姓名和学号要改为同学自己的名字和学号。
基本思路infect.exe的目标是向notepad.exe插入一段病毒载荷,也就是说我们要向一个已知的PE文件插入一段代码,使他能做到我们想要它做到的,但是实际上它并不应该能做到的功能。一般来说PE病毒的载荷插入方式有两种,其一是在节之间插入,其二是新建节插入。在节之间插入的好处是不用改entrypoint,在shellcode里不需要jmp回原本的entrypoint,基本上顺着执行原本的PE文件的过程中就可以将你的shellcode执行了,而缺点也显而易见,节之间的空间可能不足,可能出现无法植入s ...
BUU刷题日记-john-in-the-middle
导语pillar的刷题日记
john in the middle开局一个pcap
看一眼全是http,直接进行一个http对象的导出,得到一个网页文件
大概是个什么CTF比赛信息,谢谢赞助商blabla的
没什么头绪,拿stegsolve看看各个图片。
在plane0若有若无的看到了flag是john the sniffer,往后翻看到了更清晰的
flag{J0hn_th3_Sn1ff3r}
BUU刷题日记-喵喵喵
导语pillar的刷题日记
喵喵喵开局一张图,010editor打开,发现没什么东西藏着。
用stegsolve打开,在RGB的0panel都能明显看到隐写
经过一番尝试,在Row LSB BGR顺序可以发现一个PNG,存下来,发现无法查看,这是因为前面多了0xFFFE,用16进制吧FFFE删掉就行了。
打开发现是半张二维码
用16进制编辑器把长宽改一样。
扫描出来
下载内容,提示flag不在这里哦 你猜猜flag在哪里呢? 找找看吧。
回头再看了一眼二维码的16进制,并确定无常规隐写。
考虑到txt文件,有可能是ntfs数据流,用winrar解压,用ntfsstreamseditor
在线反编译
#!/usr/bin/env python# visit https://tool.lu/pyc/ for more informationimport base64def encode(): flag = '*************' ciphertext = [] for i in range(len(flag)): s ...