aes-256-ecb

#!/usr/bin/env python
# coding=utf-8
import time
import socket
import string

agentid = ""
message = ""
flag = ""

for i in range(45):
    agentid += "1"


def returnmsg(data):
    """发送与接收"""
    s.send(data)
    time.sleep(0.3)
    msg = s.recv(1024)
    return msg


while True:
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.connect(("116.85.48.103", 5002))

    print returnmsg("2acba569d223cf7d6e48dee88378288a\n")  # 发送题目的mission key
    cipertext = returnmsg(agentid + "\n")  # 得到密文
    print cipertext

    for i in string.lowercase + string.digits + string.uppercase + "{}":
        message = "Connection for mission: {}, your mission's flag is: {}".format(agentid, flag + i)
        info = returnmsg(message + "\n")
        if info.split("\n")[0] in cipertext: # 如果尝试加密的内容和第一次密文相同,则记下i
            print info
            flag += i
            print "find key code: " + i
            break

    print message
    s.shutdown(2)
    s.close()
    if agentid == "": # 每一次猜到keycode后,agentid都要减一位
        break
    else:
        agentid = agentid[:-1]
    if i == "}":
        break

  

猜你喜欢

转载自www.cnblogs.com/p201721410013/p/12650502.html