MOCTF_misc

我是小萌新在成长,希望遇到更多大佬

平台:
http://www.moctf.com/challenges
由于我自己是个萌新,所以一方面写下来记住,一方面写给更加萌新的萌新,哈哈哈
这里少一题:奇怪的01
参考一个博主的:
https://blog.csdn.net/weixin_34050389/article/details/88208331

我可是黑客

MOCTF_misc_第1张图片
图片另存为本地,用WInhex打开,拖到最下面:
MOCTF_misc_第2张图片
moctf{e4sy_1ma9e_m1sc}

假装安全

MOCTF_misc_第3张图片Winhex一下发现最后面有个flag.txt
MOCTF_misc_第4张图片
其实感觉像这样的图片题上来没什么思路一般属性一下或者用Winhex看一看总会发现一点东西,无非隐写那些事
没什么说的,binwalk一下,foremost一下:
MOCTF_misc_第5张图片
里面有个Zip压缩包,将里面的东西提取出来,发现flag
MOCTF_misc_第6张图片
在这里我发现一件事,不知道是不是bug,有些Zip压缩包在Windows下打不开提示要密码,但是把文件放到kali下提,出来是没问题的,也可能是我的错觉?正规思路应该是用Winhex将伪加密的09改为00,另存为解压得到flag。
MOCTF_misc_第7张图片
根据开头格式moctf猜测是栅栏密码,栅栏密码解密得到
MOCTF_misc_第8张图片

扫扫出奇迹

MOCTF_misc_第9张图片
可以看到二维码的黑白反过来了,这里将黑白翻转的方法很多:
1、PS中在上方菜单栏,点击“图像”进入调整选择反向即可,或者快捷键“Ctrl+i”
由于本人没有PS并且很懒,所以没图
2、用Stegsolve打开,向后翻一下就会发现黑白反过来了
MOCTF_misc_第10张图片
扫描图中二维码,可以得到flag:
moctf{qr_code_1s_1n_1t}
当然这里方法也很多
可以用手机扫,也可以用网上的屏幕二维码识别工具:
MOCTF_misc_第11张图片

光阴似箭

MOCTF_misc_第12张图片
这是一个跳得非常快的GIF,但是很尴尬运气好的时候直接截图截到了。。。
(我不会告诉你其实这也是一个sao套路的。。。)
正解:
图片另存为,网上搜“在线GIF分解”,上传图片,分解:
MOCTF_misc_第13张图片或者用Stegsolve工具打开GIF,往后翻就可以了:
MOCTF_misc_第14张图片
最后将字符反过来的一下就可以了

杰斯的魔法

直接运行一下代码就出来了:
MOCTF_misc_第15张图片MOCTF_misc_第16张图片

流量分析

把包下下来,用wireshark打开:
用tcp筛选然后追踪流后没有发现flag:
MOCTF_misc_第17张图片
将0改为1后发现flag:
MOCTF_misc_第18张图片至于为什么。。。作为萌新的我表示我也不知道啊,上网搜了一下资料,说是后面的数字代表的是一个个端口(eq是equal的缩写,意思是等于),但是这个题目当中好像只有0和1能筛选出数据,可能只用了俩端口??求大神指点

女神的告白

爆破题,根据题目提示密码的前6位是meimei
用工具Advanced Archive Password Recovery进行爆破:
由于不知道后面有多少位,只能一次一次试,试到四位的时候出来了:
MOCTF_misc_第19张图片得到flag
moctf{Y0u_@re_A_g00d_man}

捉迷藏

哇,直接出flag了,好简单:
MOCTF_misc_第20张图片
校验后发现事情并没有这么简单,答案不对。。。
看到另一个图片,又是隐写了,binwalk、foremost二连就好
事实上,如果猜到了有隐写,可以直接后缀名改为zip试一下,得到flag.txt文件:
MOCTF_misc_第21张图片
发现一串数字:
109 111 99 116 102 123 104 49 100 51 95 97 78 100 95 115 51 51 75 125
看数字相对集中,ASCII试一下,果然出结果(注意这里的数字是十进制的ASCII码):
MOCTF_misc_第22张图片
很多网站只能转换一个字符。。。脑瓜疼,找半天找到一个可以一串字符一起撸的,嘎嘎:
http://www.ab126.com/goju/1711.html#ecms

是兄弟就来干我

解压得到一个图片和一个压缩包,图片估计是隐写,得到压缩包的密码
emmmm。。。感觉套路都差不多,上Winhex、binwalk、foremost三连看看
好吧,事实上并不好使。。。。看来要变成四连了:用stegsolve中LSB隐写分析一下
MOCTF_misc_第23张图片保存文件保存为bin。。。
MOCTF_misc_第24张图片

png的头文件八个字节为
89 50 4E 47 0D 0A 1A 0A
将多余的删掉,另存为得到一张图片
MOCTF_misc_第25张图片
在这里插入图片描述
MOCTF_misc_第26张图片
输入密码zhazhahui得到flag.txt的内容:
f_hfv7m_y8{kThk43a_xrk0?n}
应该有栅栏,但是格式好像不对,先凯撒一下吧(只对数字字母凯撒,符号不运算 )
因为第一个字母是moctf的m,f到m位移了7,凯撒脚本要自己收集,我在这提供两个Python3.7 64bit的(小萌新表示当然是网上荡的啦,感谢:https://blog.csdn.net/u013378642/article/details/80874581)

def encryption(str, n):
    cipher = []
    for i in range(len(str)):
        if str[i].islower():
            if ord(str[i]) < 123-n:
                c = chr(ord(str[i]) + n)
                cipher.append(c)
            else:
                c = chr(ord(str[i]) + n - 26)
                cipher.append(c)
        elif str[i].isupper():
            if ord(str[i]) < 91-n:
                c = chr(ord(str[i]) + n)
                cipher.append(c)
            else:
                c = chr(ord(str[i]) + n - 26)
                cipher.append(c)
        else:
            c = str[i]
            cipher.append(c)
    cipherstr = ('').join(cipher)
    return cipherstr

#获得用户输入的明文
#此代码只对字母进行转换
print("请输入字符串:")
plaintext = input()
#下面这句中的数字要自己改完再运行,位移多少位就写多少,可以为负数(负数相当于解密)
ciphertext = encryption(plaintext, 7)
print(ciphertext)

在这里再提供一个所有字母数字符号的(小萌新表示还是荡的,但是已经不记得作者了。。。):

#import os
#-*-coding:utf-8-*-
#============================================================================
#   凯撒密码(caesar)是最早的代换密码,对称密码的一种,本代码是字母数字符号统统转          
#   算法:将每个字母用字母表中它之后的第k个字母(称作位移值)替代     
#============================================================================
def encryption():
    str_raw = input("请输入明文:")
    k = int(input("请输入位移值:"))
    #输入的时候位移值其实也可以为负数,但是为了理解方便不用负数,将负数变成解密选项
    str_change = str_raw.lower()
    str_list = list(str_change)
    str_list_encry = str_list
    i = 0
    while i < len(str_list):
        if ord(str_list[i]) < 123-k:
            str_list_encry[i] = chr(ord(str_list[i]) + k)
        else:
            str_list_encry[i] = chr(ord(str_list[i]) + k - 26)
        i = i+1
    print ("加密结果为:"+"".join(str_list_encry))
def decryption():
    str_raw = input("请输入密文:")
    k = int(input("请输入位移值:"))
    str_change = str_raw.lower()
    str_list = list(str_change)
    str_list_decry = str_list
    i = 0
    while i < len(str_list):
        if ord(str_list[i]) >= 97+k:
            str_list_decry[i] = chr(ord(str_list[i]) - k)
        else:
            str_list_decry[i] = chr(ord(str_list[i]) + 26 - k)
        i = i+1
    print ("解密结果为:"+"".join(str_list_decry))
while True:
    print (u"1. 加密")
    print (u"2. 解密")
    choice = input("请选择:")
    if choice == "1":
        encryption()
    elif choice == "2":
        decryption()
    else:
        print (u"您的输入有误!")

解密后得到
m_omc7t_f8{rAor43h_eyr0?u}
看着格式就不对,栅栏一下得到:
MOCTF_misc_第27张图片
哇,终于出来了,好感动。。。

百变flag

太菜了,一开始我还以为是没有题目。。。
在这里插入图片描述
以为图片不见了?另存为一下:
MOCTF_misc_第28张图片
打不开,WInhex一下,发现.exe:
在这里插入图片描述
改后缀名为zip,要密码,发现是伪加密:
MOCTF_misc_第29张图片
奇数改偶数,得到flag.exe,打不开,还是WInhex看一下,拉到最后发现FF D8 FF是JPG的文件头的倒序,可能整个文件都是反的:
MOCTF_misc_第30张图片
用简单的Python语句把它反过来:

inputFile = open(r'路径\f1ag.exe', 'rb').read()
output = inputFile[::-1]
outputFile = open(r'路径\output.jpg', 'wb')
outputFile.write(output)

解释:
“r” 以读方式打开,只能读文件 , 如果文件不存在,会发生异常
“w” 以写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件
“rb” 以二进制读方式打开,只能读文件 , 如果文件不存在,会发生异常
“wb” 以二进制写方式打开,只能写文件, 如果文件不存在,创建该文件;如果文件已存在,先清空,再打开文件
‘b’:表示要读写二进制数据
参考:https://www.cnblogs.com/nulige/p/6128948.html
打开图片,看到flag(如果遇到无法打开图片,另一程序正在编辑此图片:生成图片可能需要一点时间):
MOCTF_misc_第31张图片

蒙娜丽萨的微笑

发现要密码,但是没有任何关于密码的提示,试一下伪加密,Winhex修改一下:
MOCTF_misc_第32张图片
另存为,打开得到图片
MOCTF_misc_第33张图片
又是图片隐写,四连变身五连:修改高度
事实上无脑binwalk和foremost可以得到一个压缩包
MOCTF_misc_第34张图片
但是不知道密码,所以还是要一步步来,修改高度
MOCTF_misc_第35张图片
所以高度宽度的格式为(先宽再高)
00 00 01 f4 00 00 01 74
WInhex中查找(查找的时候记得把空格去掉)并修改高度(把0174变大比如0274)
MOCTF_misc_第36张图片MOCTF_misc_第37张图片
得到c2ltbGVpc2ludGVyaW5n
base64解码得到simleisintering(微笑被埋葬,估计是密码了)
MOCTF_misc_第38张图片
得到:moctf{Int3resting_piXe1}

李华的双十一

要密码,伪加密,WInhex修改,要修改两处
MOCTF_misc_第39张图片
但是发现一个好玩的:
MOCTF_misc_第40张图片
得到一个money.zip的压缩包和一个singledog.mp3
用ARCHPR暴力破解得到密码00015398
这题说实话我没跑出来,位数还好说多试试就好,但为什么是纯数字?money.zip?
MOCTF_misc_第41张图片
得到
MOCTF_misc_第42张图片
额,好吧,WInhex:
在这里插入图片描述
在线解码得到BOY1111,那么估计就是mp3的密码了
ctf在线工具连接:http://ctf.ssleye.com/
得到
MOCTF_misc_第43张图片
在这里插入图片描述
base64一下得到moctf{#S1ngl3_D0g#}

李华的疑惑

解压,得到password.txt和flag.zip,压缩包要密码,那应该就隐藏在txt中了,sublime看一下:
MOCTF_misc_第44张图片
22500行的255,RGB(red、green、blue三原色,255表示亮度,请自行搜一下RGB)中255,255,255表示白色当然还有其他颜色比如(我也不知道是什么颜色哈哈哈):
MOCTF_misc_第45张图片
具体是什么跑一跑就知道了,参考:https://www.cnblogs.com/webFuckeeeer/p/4536776.html
猜测行数可能是150×150、225×100等,反正不会太离谱

#-*- coding:utf-8 -*-
from PIL import Image
#这里可能需要通过pip install PIL命令安装Python的PIL库,强烈建议直接kali:自带库,而且安装库也方便
import re

x = 150 #x坐标  通过对txt里的行数进行整数分解
y = 150 #y坐标  x*y = 行数
#猜测的行数要改好,不要漏了

im = Image.new("RGB",(x,y))#创建图片
file = open('misc100.txt') #打开rbg值文件

#通过一个个rgb点生成图片
for i in range(0,x):
    for j in range(0,y):
        line = file.readline()#获取一行
        rgb = line.split(",")#分离rgb
        im.putpixel((i,j),(int(rgb[0]),int(rgb[1]),int(rgb[2])))#rgb转化为像素
im.show()

若pip install PIL命令不好用的话,推荐一篇参考
Python安装PIL库的参考:https://www.cnblogs.com/sharon123/p/6873865.html
MOCTF_misc_第46张图片
MOCTF_misc_第47张图片说了这么多,跑一下我们的Python吧,小萌新表示好感动,终于得到密码了:PPPPPPass_word
MOCTF_misc_第48张图片
解压得到
在这里插入图片描述
得到:U2FsdGVkX18R9EylBVacP/j0XpCISh9nZth6TFwoh5GUv0edeVp3ZV9gXVqd/rlH66OIZgSHn2Mock4hcdqFEg==
不像base64,是AES。。。小萌新很崩溃AES是什么怎么解
算了在线解码:http://tool.oschina.net/encrypt/
MOCTF_misc_第49张图片
解密得到moctf{D0_You_1ik3_tO_pAinH_wi4h_pi8e1}

奇怪的01

现在的力量不足,等升级了再来补上

你可能感兴趣的:(writeup(平台_内容),moctf,misc)