zoukankan      html  css  js  c++  java
  • 强网杯2018 Web签到

     Web签到

    比赛链接:http://39.107.33.96:10000

    比赛的时候大佬对这题如切菜一般,小白我只能空流泪,通过赛后看别人的wp,我知道了还有这种操作。

    这个赛题分为3层

    第一层 The Fisrt Easy Md5 Challenge

    为MD5弱类型比较,这时候传入两个加密后开头为0e的不想等值就可以绕过了。

    if($_POST['param1']!=$_POST['param2'] && md5($_POST['param1'])==md5($_POST['param2'])){
                                                     die("success!");
                                              }

    例:240610708、QNKCDZO、aabg7XSs、aabC9RqS

    param1=240610708&param2=QNKCDZO

    第二层 The Second Easy Md5 Challenge

    为MD5强类型比较,这时候传入两个数组,数组的值不相等,造成MD5加密时报错产生NULL=NULL的情况,绕过比较。

    if($_POST['param1']!==$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){
                                                     die("success!");
                                              }

    param1[]=1&param2[]=a

    第三层 Md5 Revenge Now!

    比赛的时候就卡在这了,题目在比较两个值的时候,限制了只能时字符串类型的,所有两个都传数组是传不进来的。

    没想到啊没想到,最后既然是会有两个md5加密之后值相同的东西,我搜了半天都没发现呀,是搜索引擎不行吗。。。

    if((string)$_POST['param1']!==(string)$_POST['param2'] && md5($_POST['param1'])===md5($_POST['param2'])){
                                       die("success!);
                                }

    相关信息参考链接:

    https://crypto.stackexchange.com/questions/1434/are-there-two-known-strings-which-have-the-same-md5-hash-value

    https://www.mscs.dal.ca/~selinger/md5collision/

     两个MD5值相同的数据块

    the two blocks

    d131dd02c5e6eec4693d9a0698aff95c 2fcab58712467eab4004583eb8fb7f89

    55ad340609f4b30283e488832571415a 085125e8f7cdc99fd91dbdf280373c5b

    d8823e3156348f5bae6dacd436c919c6 dd53e2b487da03fd02396306d248cda0

    e99f33420f577ee8ce54b67080a80d1e c69821bcb6a8839396f9652b6ff72a70

    And

    d131dd02c5e6eec4693d9a0698aff95c 2fcab50712467eab4004583eb8fb7f89

    55ad340609f4b30283e4888325f1415a 085125e8f7cdc99fd91dbd7280373c5b

    d8823e3156348f5bae6dacd436c919c6 dd53e23487da03fd02396306d248cda0

    e99f33420f577ee8ce54b67080280d1e c69821bcb6a8839396f965ab6ff72a70

    produce an MD5 collision.

    Each of these blocks has MD5 hash 79054025255fb1a26e4bc422aef54eb4.

    接下来就好办了,把这两个提交上去就行了

     

     l3m0n大佬的payload

    curl -v http://39.107.33.96:10000/ -H "Cookie: PHPSESSID=8iflkrd5vocvllro75oekanat3" --data param1=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%00%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1U%5D%83%60%FB_%07%FE%A2&param2=M%C9h%FF%0E%E3%5C%20%95r%D4w%7Br%15%87%D3o%A7%B2%1B%DCV%B7J%3D%C0x%3E%7B%95%18%AF%BF%A2%02%A8%28K%F3n%8EKU%B3_Bu%93%D8Igm%A0%D1%D5%5D%83%60%FB_%07%FE%A2"

    flag is QWB{s1gns1gns1gnaftermd5}

  • 相关阅读:
    maven
    shell脚本--循环结构
    vi编辑器的使用
    数据对象映射模式
    shell脚本--逻辑判断与字符串比较
    shell脚本--分支、条件判断
    shell脚本--数值比较
    shell脚本--文件测试
    sublime text3修改默认配置文件是失败的解决方法
    shell脚本--显示文本内容
  • 原文地址:https://www.cnblogs.com/zhaijiahui/p/8668144.html
Copyright © 2011-2022 走看看