MOCTF_misc部分

本文记录了一位新手在MOCTF挑战中的成长过程,包括遇到的各类安全问题的解决方法,如图片隐写、二维码识别、流量分析、压缩包解密等,涉及工具如Winhex、Wireshark、Stegsolve等。
摘要由CSDN通过智能技术生成

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

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

我可是黑客

17067209-68bc7f32de26f050.png
在这里插入图片描述

图片另存为本地,用WInhex打开,拖到最下面:


17067209-86ceb4f22f96a8b5.png
在这里插入图片描述

moctf{e4sy_1ma9e_m1sc}

假装安全

17067209-021d809e2a6280d3
在这里插入图片描述

Winhex一下发现最后面有个flag.txt


17067209-cb41fa30ced2c1e7.png
在这里插入图片描述

其实感觉像这样的图片题上来没什么思路一般属性一下或者用Winhex看一看总会发现一点东西,无非隐写那些事
没什么说的,binwalk一下,foremost一下:


17067209-d375342b639dc983
在这里插入图片描述

里面有个Zip压缩包,将里面的东西提取出来,发现flag
17067209-1d25f5155616403a.png
在这里插入图片描述

在这里我发现一件事,不知道是不是bug,有些Zip压缩包在Windows下打不开提示要密码,但是把文件放到kali下提,出来是没问题的,也可能是我的错觉?正规思路应该是用Winhex将伪加密的09改为00,另存为解压得到flag。


17067209-257b0fb6eff9fb48
在这里插入图片描述

根据开头格式moctf猜测是栅栏密码,栅栏密码解密得到
17067209-f450783a69f2b2d9.png
在这里插入图片描述

扫扫出奇迹

17067209-49a90ac2a20d0098.png
在这里插入图片描述

可以看到二维码的黑白反过来了,这里将黑白翻转的方法很多:
1、PS中在上方菜单栏,点击“图像”进入调整选择反向即可,或者快捷键“Ctrl+i”
由于本人没有PS并且很懒,所以没图
2、用Stegsolve打开,向后翻一下就会发现黑白反过来了


17067209-ee4935f1248cca7a.png
在这里插入图片描述

扫描图中二维码,可以得到flag:
moctf{qr_code_1s_1n_1t}
当然这里方法也很多
可以用手机扫,也可以用网上的屏幕二维码识别工具:


17067209-8349a705e7a5bd4e
在这里插入图片描述

光阴似箭

17067209-8418f3577361f6b6.png
在这里插入图片描述

这是一个跳得非常快的GIF,但是很尴尬运气好的时候直接截图截到了。。。
(我不会告诉你其实这也是一个sao套路的。。。)
正解:
图片另存为,网上搜“在线GIF分解”,上传图片,分解:


17067209-f93fe6dabccd0458
在这里插入图片描述

或者用Stegsolve工具打开GIF,往后翻就可以了:


17067209-b5822c3d2ba30541
在这里插入图片描述

最后将字符反过来的一下就可以了

杰斯的魔法

直接运行一下代码就出来了:


17067209-b6b53fefce3d43f1
在这里插入图片描述
17067209-eeac41276c897de2.png
在这里插入图片描述

流量分析

把包下下来,用wireshark打开:
用tcp筛选然后追踪流后没有发现flag:


17067209-ca331887edc91735
在这里插入图片描述

将0改为1后发现flag:


17067209-2e60ecb686b8f492
在这里插入图片描述
至于为什么。。。作为萌新的我表示我也不知道啊,上网搜了一下资料,说是后面的数字代表的是一个个端口(eq是equal的缩写,意思是等于),但是这个题目当中好像只有0和1能筛选出数据,可能只用了俩端口??求大神指点

女神的告白

爆破题,根据题目提示密码的前6位是meimei
用工具Advanced Archive Password Recovery进行爆破:
由于不知道后面有多少位,只能一次一次试,试到四位的时候出来了:


17067209-a7ff8c2c7f2e94e5
在这里插入图片描述

得到flag
moctf{Y0u_@re_A_g00d_man}

捉迷藏

哇,直接出flag了,好简单:

17067209-a30addf65b687ffa
在这里插入图片描述

校验后发现事情并没有这么简单,答案不对。。。
看到另一个图片,又是隐写了,binwalk、foremost二连就好
事实上,如果猜到了有隐写,可以直接后缀名改为zip试一下,得到flag.txt文件:
17067209-6ea8e4f34e0ae46f.png
在这里插入图片描述

发现一串数字:
109 111 99 116 102 123 104 49 100 51 95 97 78 100 95 115 51 51 75 125
看数字相对集中,ASCII试一下,果然出结果(注意这里的数字是十进制的ASCII码):
17067209-fbb26aacf92c6bf6
在这里插入图片描述

很多网站只能转换一个字符。。。脑瓜疼,找半天找到一个可以一串字符一起撸的,嘎嘎:
http://www.ab126.com/goju/1711.html#ecms

是兄弟就来干我

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


17067209-097cbf5d21af1f06
在这里插入图片描述

保存文件保存为bin。。。


17067209-286b09c5981c3659.png
在这里插入图片描述

png的头文件八个字节为
89 50 4E 47 0D 0A 1A 0A
将多余的删掉,另存为得到一张图片

17067209-6cbb98c795a0c50a.png
在这里插入图片描述

17067209-af24768d5b9110d8.png
在这里插入图片描述

17067209-61e08c639d8bb721
在这里插入图片描述

输入密码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}
看着格式就不对,栅栏一下得到:


17067209-e9c9ca898978e04a.png
在这里插入图片描述

哇,终于出来了,好感动。。。

百变flag

官方题没有了,好像崩溃了?后期补

蒙娜丽萨的微笑

发现要密码,但是没有任何关于密码的提示,试一下伪加密,Winhex修改一下:


17067209-a9a51a297f8d34b5.png
在这里插入图片描述

另存为,打开得到图片


17067209-60820e241753593a
在这里插入图片描述

又是图片隐写,四连变身五连:修改高度
事实上无脑binwalk和foremost可以得到一个压缩包
17067209-cf96748928c82345.png
在这里插入图片描述

但是不知道密码,所以还是要一步步来,修改高度


17067209-8b56a11e5feae70b
在这里插入图片描述

所以高度宽度的格式为(先宽再高)
00 00 01 f4 00 00 01 74
WInhex中查找(查找的时候记得把空格去掉)并修改高度(把0174变大比如0274)
17067209-669e14dc55df0426
在这里插入图片描述
17067209-9a200e31974d24ae
在这里插入图片描述

得到c2ltbGVpc2ludGVyaW5n
base64解码得到simleisintering(微笑被埋葬,估计是密码了)
17067209-fb577443e5d6beeb
在这里插入图片描述

得到:moctf{Int3resting_piXe1}

李华的双十一

要密码,伪加密,WInhex修改,要修改两处

17067209-0479ae48f2d2fc85
在这里插入图片描述

但是发现一个好玩的:
17067209-3404f47c2f2fed63
在这里插入图片描述

得到一个money.zip的压缩包和一个singledog.mp3
用ARCHPR暴力破解得到密码00015398
这题说实话我没跑出来,位数还好说多试试就好,但为什么是纯数字?money.zip?
17067209-88451b8f8f643d4b
在这里插入图片描述

得到
17067209-556edbaf23c03e17.png
在这里插入图片描述

额,好吧,WInhex:
17067209-1eb11662c2e5050d.png
在这里插入图片描述

在线解码得到BOY1111,那么估计就是mp3的密码了
ctf在线工具连接: http://ctf.ssleye.com/
得到
17067209-2070db6ee4f846b9
在这里插入图片描述

[图片上传失败...(image-db7c8d-1554727613775)]
base64一下得到moctf{#S1ngl3_D0g#}

李华的疑惑

解压,得到password.txt和flag.zip,压缩包要密码,那应该就隐藏在txt中了,sublime看一下:

17067209-040de5476e236577
在这里插入图片描述

22500行的255,RGB(red、green、blue三原色,255表示亮度,请自行搜一下RGB)中255,255,255表示白色当然还有其他颜色比如(我也不知道是什么颜色哈哈哈):
17067209-a399dce903fb3184
在这里插入图片描述

具体是什么跑一跑就知道了,参考: 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

17067209-54feb70fe2bd003b
在这里插入图片描述

17067209-f5aca9fdce99975b
在这里插入图片描述
说了这么多,跑一下我们的Python吧,小萌新表示好感动,终于得到密码了:PPPPPPass_word
17067209-6c4fe9aa7d46eaa9.png
在这里插入图片描述

解压得到
17067209-3fee9309547906ed.png
在这里插入图片描述

得到:U2FsdGVkX18R9EylBVacP/j0XpCISh9nZth6TFwoh5GUv0edeVp3ZV9gXVqd/rlH66OIZgSHn2Mock4hcdqFEg==
不像base64,是AES。。。小萌新很崩溃AES是什么怎么解
算了在线解码: http://tool.oschina.net/encrypt/
17067209-05dc0b412a599fc8
在这里插入图片描述

解密得到moctf{D0_You_1ik3_tO_pAinH_wi4h_pi8e1}

奇怪的01

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值