zoukankan      html  css  js  c++  java
  • 2018全国大学信息安全竞赛wp(2misc+2crypto+1web)

    WEB:

    0x00 easyweb

    admin用户是没有密码的,但是当密码为空时,网页会自动填写。用hackbar构造空密码post,服务器返回cookies,浏览器保存,刷新获得flag

     

     CRYPTO:

    0x01 flag_in_your_hand

    输入token调用js加密,比较。正确返回flag。加密方式是md5,返回的flag是一串base64

    Jscheck方法,暴露了数组,python还原。输入

     

    0x02 oldstreamgame

    流密码,32mask,816进制flag2^32爆破不可取。读脚本。

    1.主函数第一个循环即写入100字节,第二个循环通过将tmp循环左移+output(^output)变为8位,写入文件。

    2.Lfsr函数输入(R,mask),输出(output,lastbit)R初始为flag,长32位,每经过一次函数,R=output=(R*2)%2**32+lastbit即循环左移末尾补上lastbitmask32位不变。lastbit长度1位,有点类似于差分曼彻斯特编码,i=R&mask,i的末位为1时会发生跳变,为0时保持原数。在这个发过程中发现,当i1为奇数时为lastbit1,为偶数时为0

    总结出这些规律后,不难发现key只有前32字节是直接与flag有关。后面的字节是后来补上的lastbit加密而成。所以利用这一特点,循环右移,计算奇偶,算出flag

    贴出解密脚本和验证

     

    Misc:

    0x03 picture

    Binwalk -eM 扫出一段数据,打开里面是base64python解码保存为一个文件

     

    Winhex查看16进制,发现有点像zip压缩包,但头部为4B50,所以修改头部和后缀打开。

     

     

    根据注释获得密码  integer division or modulo by zero

     

    打开code,发现为uuencode,解码

     

    0x04 验证码

    输入32token与验证码获得flag

     

  • 相关阅读:
    [Java学习] Java包装类、拆箱和装箱详解
    [Java学习] Java多态和动态绑定
    [Java学习] Java继承的概念与实现
    [Java学习] Java super关键字
    [Java代码] Java是自学好还是参加培训班好?
    [Java学习] Java字符串(String)
    [Java学习] Java方法重载
    [.NET源码] EF的增删改查
    C#面向服务WebService从入门到精通
    CoordinatorLayout-带图片伸缩工具栏
  • 原文地址:https://www.cnblogs.com/kagari/p/8972122.html
Copyright © 2011-2022 走看看