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

     

  • 相关阅读:
    不吐不快之EJB演练——开篇概述
    URL重写:RewriteCond指令与RewriteRule 指令格式
    刚到公司有点压力山大,在此希望有大神给点正能量
    053第449题
    选择排序---简单选择排序 堆排序
    bzoj-1492 货币兑换Cash (2)——CDQ分治
    MySQL 提高Insert性能
    Codeforces Round #313 (Div. 2) 560C Gerald's Hexagon(脑洞)
    Matlab矩阵基础
    Android 带清除功能的输入框控件EditTextWithDel
  • 原文地址:https://www.cnblogs.com/kagari/p/8972122.html
Copyright © 2011-2022 走看看