zoukankan      html  css  js  c++  java
  • [BSidesCF 2019]Mixer

    很秀的一道题,需要密码学的知识,学到了

    第一步,登入,登入成功后提示要使is_admin?为1,所以我们要做的就是让其为1

    抓包,修改下cookie的user (这里为什么要修改cookie,也许题目最开始的那行小字就是提示吧。。Note: the "signature" and "rack.session" cookies are not part of the challenge!)

    扩展:这里需要了解一下分组密码工作模式

    本题主要是CBC加密

    我们通过修改user,将一组16进制对调,可以发现报错,多尝试几次,可以推测出解码为

    {"first_name":"admin","last_name":"admin","is_admin":0}

    所以我们需要的就是构造

    {"first_name":"admin","last_name":"admin","is_admin":1}

    这里需要知道CBC一般是16字节为一个块

    我们只要构造:

    {"first_name":"A
    1.00000000000000
    ","last_name":"x
    xxx","is_admin":
    0}
    一共5组
    

    然后将第2组移到第5组之前,即

    {"first_name":"A1.00000000000000","last_name":"paww","is_admin":1.000000000000000}
    

    而 1.000000000000000 == 1 ,即可成功绕过admin登入

    抓包

    这里的user为

    74ba95cdeaef9e38fdd0543be7873714ede75aa3f199aec8b4cfdee00084b153713bc8a476f7029e75a30074d7ad2414e95d4866feba88df47630671eb7806b43c8bf4d5fa9ff12561cdd044cf52941c

    因为CBC是16字节为一组,转为16进制就是32个字符为一块,所以第二块就是

    [32:64]

    所以写个脚本即可

    将变换后的cookie替换user的值即可得到flag

  • 相关阅读:
    select SCOPE_IDENTITY()用法
    SQL 2005 with(nolock)详解
    .NET4进行COM互操作导出数据到Excel
    Counterfeit Dollar 1013 pku
    Numbers that count 1016 PKU
    对局问题 ——取火柴问题(转)
    (a^b) mod c
    对局问题——放硬币问题(转)
    对局问题 ——取石子问题– 1堆(转)
    Follow My Logic 1048 PKU
  • 原文地址:https://www.cnblogs.com/NPFS/p/13403154.html
Copyright © 2011-2022 走看看