zoukankan      html  css  js  c++  java
  • 上海嘉韦思杯部分writeup

    第二题

    打开赛题,看到加密字符串,进行base64解密,发现是JSFUCK,再次解密,控制台得到flag。

    第三题

    打开频谱图得到flag,flag中有三个_,联想到音频文件详细信息中的三个zero,带入MD5解密得到flag。

    第四题

    打开赛题发现是加密字符串,进行15次base64解密,发现有栅栏规律,解密得到flag。

    第六题

    题目要求2秒内输入数学表达式结果,写脚本得到flag。

    #coding:utf-8
    import requests
    improt re
    import sys
    reload(sys)
    sys.setdefaultencoding('utf-8')
    url = "赛题网址"
    res = requests.get(url).content.decode("utf-8")
    exp = re.findall(u'<p>(.+?)</p>',res)[1]
    print(exp)
    print(eval(exp))
    result = eval(exp)
    payload = {"result":result}
    res = requests.post(url,data=payload).content.decode("utf-8")
    print(res)
    

    第七题

    下载图片使用binwalk分析,发现zip压缩包,使用binwalk -e进行分离
    打开压缩包发现提示“管理员使用了他的QQ号进行加密”
    直接爆破,打开文件得到flag

    第八题

    打开赛题发现字符串,进行ascii码的凯撒移位,第一位移4位发现为f,第二位移5位为l,以此类推等到flag。

    第十题

    文件查壳是无壳文件
    拖进ida查看,找到一个函数:sub_8048580
    程序的大概逻辑是,getline获得一个字符串,然后进入sub_8048580进行字符串匹配操作,匹配过程中返回0或1,如果此函数返回1,那么后面即输出correct,字符串即为flag
    根据程序倒推出flag{09vdf7wefijbk}

    第11题

    查看网页源码,发现是判断条件是md5碰撞,上网查找符合条件的md5得到flag

    第12题

    题目有两个password,首先查壳,发现无壳。
    在ida中找到字符串Youpassed level1找到引用“You passed level1!”字符串的地方,顺利得到第一个password。
    使用OD,动态调试第一个password的流程,找到程序在判断第一个password是否正确之前,注册了一个异常处理函数。在异常处理函数中,有个对比两个数值后的字符串输出,判断应该是对比了第二个password之后输出提示字符串。顺着这个线索发现密文解密并匹配字符串的函数,这个函数把0x22FDCC地址的字符串“u1nnf2lg”分别与2异或,得到第二个password“w3lld0ne”。

  • 相关阅读:
    【windows 10 安装docker for windows】
    【windows本地修改git账号、路径信息】
    【echarts】简单使用流程(java)
    【MySql】explain
    【thymeleaf-标签】th:with
    【MongoDB】Windows:安装与启动
    【thymeleaf-标签】th:if
    Thread类中interrupt()、interrupted()和isInterrupted()方法详解
    java中的锁
    LinkedList集合详解
  • 原文地址:https://www.cnblogs.com/luoleqi/p/10698403.html
Copyright © 2011-2022 走看看