[NSSRound#23 misc] 前两题

发布于:2024-04-29 ⋅ 阅读:(34) ⋅ 点赞:(0)

这个周末NSS个人赛是个MISC,这个好久没怎么玩了,结果不会了。只作出一题来,不过参与的人比较少,每题解出数和也不到50。前50吧:)

画师

给了一个xml文件,看内容有 mxGraphModel 标签,应该是某个东西画的矢量图。结果搜了半天也没找着怎么弄。下载的库都过于复杂一时看不懂。结果结束后问群里结果有个在线的。

Flowchart Maker & Online Diagram Software

导进去啥都没有,仔细看下原文发现 strokeColor=#FFFFFF; 和 opacity=0;这应该是说白色全透明。改为黑色不透明。再导入后看不懂,但大概有些意思。明显是反了。

全选-调整图形-垂直 得到可看的:

ez_math

没有附近件,远程连接后,是一个算24的程序。于是从网上搜。这些人写的真烂。找到一个好点的,还有BUG,居然1145,3388不会算。自己写一个吧。

很久不写算法程序了,思路很简单,就是所有4个数字和3个符号的逆波兰式排列(序列由数字和符号组成,符号和前边的符号数(含当前符号)比它前边的数字数少),比如说33+这种排列只有5种。然后计算这个式子,由于有/号所以要小处理一下。

等打出字来,发现并不给flag,flag由前边的True/False组成,显然这题并不用计算,爆破也可以。

还是把费劲写的程序放上吧。

from pwn import *
import itertools 


def RPN(a):
    b = []
    for v in a:
        if isinstance(v,str):
            try:
                b.append(eval(f"{b.pop()} {v} {b.pop()}"))
            except:
                return False
        else:
            b.append(v)
    if abs(b[0]-24) <= 0.0000001:
        #print(a)    #8/(3-3/8) [3, 8, '/', 3, '-', 8, '/']
        return True 
    else:
        return False

def all_way(a):
    fs = '+-*/'
    for v in itertools.permutations(a):
        for f in itertools.product(fs,repeat=3):
            if RPN([v[0],v[1],f[0],v[2],f[1],v[3],f[2]]): return True
            if RPN([v[0],v[1],f[0],v[2],v[3],f[1],f[2]]): return True
            if RPN([v[0],v[1],v[2],f[0],f[1],v[3],f[2]]): return True
            if RPN([v[0],v[1],v[2],f[0],v[3],f[1],f[2]]): return True
            if RPN([v[0],v[1],v[2],v[3],f[0],f[1],f[2]]): return True
    else:
        return False

#context.log_level = 'debug'
p = remote('node1.anna.nssctf.cn', 28528)

bit = ''
flag = ''
while True:
    if len(bit) == 8:
        flag += chr(int(bit,2))
        print(flag)
        bit = ''
    msg = p.recvuntil(b']\n').split(b'\n')[-2]
    #msg = '[5,2,5,5]'
    num = eval(msg)
    
    r = all_way(num)
    if r:
        bit +='0'
    else:
        bit +='1'
    p.sendlineafter(b': ', str(r).encode())
                        
    
#NSSCTF{04e60768-66bf-412e-bec0-b8ef241acb1d}

后边两题连附件都没下,可能是卡点的时候有人交了,一共3个,这种就太难了我肯定不会。回头看谁有附件和WP再复现吧。


网站公告

今日签到

点亮在社区的每一天
去签到