2023陇剑杯 WP

2023陇剑杯

HW

hard_web_1

2023-08-26193435

首先判断哪个是服务器地址

image

从响应包看,给客户端返回数据包的就是服务器

所以确定服务器地址是192.168.162.188

再从开放端口来看,长期开放的端口

客户端发送一个TCP SYN包(同步请求),其中包含目标IP地址和要访问的端口号。
服务器收到SYN包后,如果端口是开放的,它会向客户端发送一个TCP SYN-ACK包(同步应答),以表示端口是开放的,并准备接受连接请求。
客户端在收到服务器的SYN-ACK包后,会向服务器发送一个TCP ACK包(确认应答),以建立连接。
一旦连接建立,数据可以在客户端和服务器之间传输。

所以用语句:

tcp.connection.synack && ip.dst==192.168.162.188

image

所以就是80、888、8888

hard_web_2

2023-08-26193548

按照包名顺序找到HTTP的包

image

找到回显开始是200且命令执行的地方

这里追踪HTTP流只能看到注入内存马的地方,更远的地方看不到了

所以就从最后一个创建内存马的包入手

image

可以看到AES加密和密钥

找到的流量复制为16进制

image

复制多余的地方直接丢到vscode替换

​​image​​

上厨子解密:

image

打开就是flag

image​​

hard_web_3

2023-08-26193612

数据包tcp.stream eq 20052的回显发现:

image

结合前面的748007e861908c03,用脚本爆破密钥

或者直接cmd5解密

SS

SS1

2023-08-26193649

image

先看数据包

找到Hello路由的第一个数据包:

image

可以看到class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=

直接上网:

image

CVE-2022022965

ss2

2023-08-26201640

image

检索到TCP的前一个HTTP流量包可以看到反弹shell的语句

SS3

2023-08-26201720​​image

SS4

2023-08-26201740

直接看/etc/shadow

image

可以直接看到账号和密码

SS5

2023-08-26201759

外网IP可以看home目录下的log文件
image

可以看到IP地址

SS6

2023-08-26201819

释放的文件

image

就这两

SS7

2023-08-26201914

image

SS8

2023-08-26201923

image

BF

BF1

2023-08-26202139

磁盘中的key​是多少

volatility取证

image

key.txt​:

image

提取文件:

image

image

这个反复提交不对,结果要rot转码…服了

image

BF2

2023-08-26202145

vol.exe -f C:\CTF\2023陇剑杯\BF\baby_forensics_58a2fd5b17eac8108638f334c399de4a\baby_forensics.raw --profile=Win7SP1x64 windows > raw

image

我感觉这种有点难以理解为什么这个就是最后的答案,有了一个方法:

先把calc的内存提出来

image

然后把导出来的文件重命名为2844.data,然后丢到GIMP里面分析,把高度拉长一点往下面划就可以看到了

image

BF3

2023-08-26202152

image

一样是把这个进程dump出来

image

调分辨率看到字符串

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

导出密钥:

image

image

image

TP

TP1

2023-08-26202159

条件锁定一下ip.src==172.31.0.2 && ip.dst == 172.31.0.1

下面回显长的翻一下

image

image

TP2

2023-08-26202204

越权漏洞:

image

一个userid为1

另一个userid为2

image

TP3

2023-08-26202210

image

确实不知道这个有什么技巧,硬找

TP4

2023-08-26202217

后面已经可以看到反弹shell了

image

追踪前面一个流:

image

这里似乎就是写文件进去了,看一下是什么cve

image

所以就是CVE-2022-21724:custom.dtd.xml

TP5

2023-08-26202224

image

一个一个翻,就是fscan_amd64

HD

hd1

2023-08-26202232

找到一个数据包:

image

在第一个数据包里面给了aes的密钥和偏移量​image

去解密

image

账号是admin

image

解密就是admin123了

hd2

2023-08-26202239

image

一个一个翻,找到了配置进去看

image

全部丢进去解密

​​image​​

hd3

2023-08-26202246

直接用第二题的密钥解码cookie,发现有SSTI注入

image

image

并且回显在了页面上

我们找比较可疑的回显:

一个None和没东西的:

image

image

分别解密,发现None没啥

但是空的那个有执行whomai命令,请求包解密一次,回显解密一次得到用户red

image

image

hd4

2023-08-26202254

image

加了一个/Index路由

​​

WS

ws1

2023-08-26201931

被入侵直接看端口

image

Telnet协议,23端口往外发信息

所以源地址就是被攻击地址,所以就是192.168.246.28

ws2

2023-08-26201938

追踪一手TCP可以看到密码:

image

ws3

2023-08-26201945

image

ws4

2023-08-26201951

image

SSW

ssw1

2023-08-26202054

这里确实有点算是知识盲区了

我们假设一句话是

<?php @eval($_POST['shell']);?>

那么我们用wireshark抓包就是:

qsVbwR

显而易见@ini_set("display_errors", "0");@set_time_limit(0)​前面的就是密码了

image

所以这里的密码就是6ea280898e404bfabd0ebb702327b19f了

ssw2

2023-08-26202101

u1s1我真不知道这个有什么技巧

image

纯靠硬找

image

ad6269b7-3ce2-4ae8-b97f-f259515e7a91就是留存值

ssw3

2023-08-26202108

直接全部保存分析最大的包:

image

改成exe,然后用py分析:(地址:https://github.com/extremecoders-re/pyinstxtractor)

image

其中有一个2.pyc反编译后:

image

发现有图片,直接运行之后可以发现test.jpg

报错了没关系还是生成了

然后misc那一套该长度

image

EW

ew1

2023-08-26202116

第一眼以为是这个d00r.php

image

提交发现不对,所以就看哪里生成了这个d00r.php

image

就找,可以找到这个ViewMore.php

ew2

2023-08-26202122

追踪d00r.php的HTTP数据包

image

有一个扫描的,上面有一个ipconfig

image

有好几个网卡

就是和nmap那个同一个网段就是192.168.162.130

ew3

2023-08-26202132

最下面有这个数据包:

image

直接拷下来运行php

<?php
file_put_contents('k3y_f1le',base64_decode('UEsDBBQAAQAAANgDvlTRoSUSMAAAACQAAAAHAAAAa2V5LnR4dGYJZVtgRzdJtOnW1ycl/O/AJ0rmzwNXxqbCRUq2LQid0gO2yXaPBcc9baLIAwnQ71BLAQI/ABQAAQAAANgDvlTRoSUSMAAAACQAAAAHACQAAAAAAAAAIAAAAAAAAABrZXkudHh0CgAgAAAAAAABABgAOg7Zcnlz2AE6DtlyeXPYAfldXhh5c9gBUEsFBgAAAAABAAEAWQAAAFUAAAAAAA=='));

image

image

查看文件类型是zip,重命名为zip

打开发现需要密码

image

密码就在上面

image

打开就是flag

​​

IR

IR1

2023-08-26201959

ps aux​进程,有redis有nginx

image

把文件都脱下来发现redis-server有后门,但是说是php后门(D盾和DF都没扫出来病毒)

image

文件类型就是一个可执行的,没什么其他信息,主要是conf文件

image

里面有个池有个地址

image

发现确实是挖矿病毒

IR2

2023-08-26202006

域名就是上面conf文件里面的donate.v2.xmrig.com

image

IR3

2023-08-26202014

攻击者利用的方法这种题目,主要是看服务器有什么服务

就这题来说,有redis​,nginx​,javaweb​三大主流服务

redis是刚才的挖矿再考的概率低一点,可以放最后看

最可疑的就是nginx了,看一下nginx的日志:

image

发现是同一个ip大量爆破login页面,起初以为是弱口令,但是只访问了login页面,并没有访问其他页面,那就是shiro!!

还有一个javaweb

image

看一下他的日志

image

确定是shiro漏洞了

但是答案是啥…

shirodeserialization​(没意思,叫shiro不好吗)

image

IR4

2023-08-26202021

就是nginx日志里面频繁访问/login页面的那个ip

image

image

IR5

2023-08-26202027

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

image

IR6

2023-08-26202037

维持权限的配置文件

/etc/passwd

/etc/shadow

/etc/sudo

…..

一大堆

​​image

一眼ssh

看一下没啥东西

image

接着看ssh

image

发现连接到klai的ssh里了

IR7

2023-08-26202045

就是刚才的redis

image

自动开启redis挖矿也算