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

     

  • 相关阅读:
    Android Studio 开发
    Jsp编写的页面如何适应手机浏览器页面
    电影
    Oracle 拆分列为多行 Splitting string into multiple rows in Oracle
    sql server 2008 自动备份
    WINGIDE 激活失败
    python安装 错误 “User installations are disabled via policy on the machine”
    ble编程-外设发送数据到中心
    iOS开发-NSString去掉所有换行及空格
    ios9 字符串与UTF-8 互相转换
  • 原文地址:https://www.cnblogs.com/kagari/p/8972122.html
Copyright © 2011-2022 走看看