2019MCTF Write up(Pwn、Re、Crypto、部分Misc) - ZhouYetao

2019MCTF Write up(Pwn、Re、Crypto、部分Misc)

2019MCTF Write up(Pwn、Re、Crypto、部分Misc)

第一次作为mctf的出题人,还是写一份官方的wp吧,同时也为了周三的晚上的直播上课做一个准备。

Reverse

login

IDA打开,main函数:
main.png

发现一共有两个函数,单击进去;
login函数:
login.png

这个函数就是一个很简单的登录的赋值过程;
check函数:
check.png

这个函数中,同时对输入的账号和密码进行的check,具体的方式如下,
账号:直接和全局变量中的admin进行比较;
密码:一个简单的异或操作,逐位异或,然后最后将异或的值和字符串进行比较;
观察题目给出的hint,密码就是flag。
exp:

#!/usr/env python

s = "zimv}`rfg`ycmcj|\x7f|w"
flag = ""


for i in range(len(s)):
    flag += chr(ord(s[i]) ^ i)

print flag

loading

这题给出了encode.py,进行分析,发现是一个修改图片的题,给出解密脚本:

#!/usr/bin/env python
# -*- coding:utf-8 -*-

import numpy as np
from scipy.misc import imread, imsave

flag = ""

img = imread("loading.png")
for x in range(img.shape[1]):
    for y in range(img.shape[0]):
        if img[y][x][0] == 2 or img[y][x][0] == 3:
            #img[y][x][0] = 2
            if img[y][x][0] == 2:
                flag += "0"
            else:
                flag += "1"

print flag

'''
>>> hex(0b010011010100001101010100010001100111101101010111011001010110110001000011011011110110110101100101010111110111010000110000010111110100000101110100011101000110000101100011011010110100011001111101)
'0x4d4354467b57656c436f6d655f74305f41747461636b467dL'
>>> "4d4354467b57656c436f6d655f74305f41747461636b467d".decode("hex")
'MCTF{WelCome_t0_AttackF}'

'''

P.S. 二维码就是为了嫖你的,233333333扫了也没用

Leave a Comment

@author:ZhouYetao
© 2020 Copyright.  | Power by Mijiu                                                                                               
本站已安全运行 651 天