2023年陇剑杯部分writeup
sevrer save_1 原题: 黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514 先筛选http流量,发现前面一大段都是进行路径扫描的,直接找到较为靠后的几条流量进行tcp追踪 这条tcp流不仅有攻击的payload也可以在回显中看到spring,所以推测是spring的漏洞,结合payload,发现是CVE-2022-22965 flag:CVE-2022-2
sevrer save_1
原题: 黑客是使用什么漏洞来拿下root权限的。格式为:CVE-2020-114514
先筛选http流量,发现前面一大段都是进行路径扫描的,直接找到较为靠后的几条流量进行tcp追踪

这条tcp流不仅有攻击的payload也可以在回显中看到spring,所以推测是spring的漏洞,结合payload,发现是CVE-2022-22965
flag:CVE-2022-22965
sevrer save_2
原题: 黑客反弹shell的ip和端口是什么,格式为:10.0.0.1:4444
可以看到这里用shell,jsp下载了一个bbbb.sh

我们仔细查看bbbb.sh的内容可以发现就是执行一条反弹shell的命令

flag:192.168.43.128:2333
sevrer save_3
原题: 黑客的病毒名称是什么? 格式为:filename
我们进入题目给出的Linux系统文件进行查看,先查看/etc/passwd

发现不仅有一个11用户还有一个guests用户,题目又说要找到病毒软件,所以我们进入/home/guests进行排查

发现一个可以的main文件,发现是elf文件,所以推测main文件就是黑客留下的病毒
flag:main
sevrer save_4
原题: 黑客的病毒运行后创建了什么用户?请将回答用户名与密码:username:password
刚才在检查病毒的时候我们查看了/etc/passwd文件,发现了一个11的用户,所以我们推测11用户就是被病毒创建的用户
查看/etc/shadow文件就可以得到11的密码

flag:11:123456
sevrer save_5
原题: 服务器在被入侵时外网ip是多少? 格式为:10.10.0.1
当病毒运行的时候,还生成了一个log日志

日志中就记录了外网的ip
flag:172.105.202.239
evrer save_6
原题: 病毒运行后释放了什么文件?格式:文件1,文件2
同样是在日志中有提示

在.idea中生成了文件
flag:lolMiner,mine_doge.sh
sevrer save_7
原题: 矿池地址是什么? 格式:domain:1234
矿池的地址就在病毒运行后生成的mine_doge.sh文件当中

flag:doge.millpools.cc:5567
sevrer save_8
原题: 黑客的钱包地址是多少?格式:xx:xxxxxxxx
这题也很简单,也在mine_doge.sh文件当中,就是WALLET的内容

flag:DOGE:DRXz1q6ys8Ao2KnPbtb7jQhPjDSqtwmNN9
Wireshark1_1(这题很简单类似签到题)
原题: 被入侵主机的IP是?
直接tcp.connection.synack去筛选也只有一条数据

就可以确认被入侵的主机ip了,或者直接浏览数据包也可以发现,被入侵的主机ip是192.168.246.28
flag:192.168.246.28
Wireshark1_2
原题: 被入侵主机的口令是?
直接找到telnet的登录流量进行tcp追踪,tcp流0中就有被入侵的主机口令

flag:youcannevergetthis
Wireshark1_3
原题: 用户目录下第二个文件夹的名称是?
也是tcp流0,虽然有点乱码但是也可以判断出第二个文件夹的名称是Downloads

flag:Downloads
Wireshark1_4
原题: /etc/passwd中倒数第二个用户的用户名是?
还是tcp流0

flag:mysql
SmallSword_1
原题: 连接蚁剑的正确密码是______________?(答案示例:123asd)
首先大致浏览一下数据包,可以发现这个数据包的主要攻击流程是通过sql注入写入一个木马文件
可以从antsword的原理来看,请求头就是连接的密钥

也可以通过写入木马的请求来看,直接把密钥摆出来了

flag:6ea280898e404bfabd0ebb702327b18f
SmallSword_2
原题: 攻击者留存的值是______________?(答案示例:d1c3f0d3-68bb-4d85-a337-fb97cf99ee2e
在24475中,将提交的参数进行base64解码就可以知道,攻击者在hacker.txt中留下ad6269b7-3ce2-4ae8-b97f-f259515e7a91

flag:ad6269b7-3ce2-4ae8-b97f-f259515e7a91
SmallSword_3
原题: 攻击者下载到的flag是______________?(答案示例:flag3{uuid})
首先文件->导出->http对象->Save All->保存到文件夹中

导出到文件夹发现,info(12).php的文件大小特别大,用文本打开发现是可执行文件,我们拖入winhex进行详细分析

发现从第三位开始是4D5A90是EXE文件的头部信息特征,所以我们删除前面三个,将其另存为exe执行
运行之后提示图片保存成功:

但是我的并没有生成图片后面也一直没有解决
看了其他大佬的wp发现会生成一张jpg文件,然后jpg文件中还藏着一张png文件,需要爆破才可以得到最终的flag
ez_web_1
原题: 服务器自带的后门文件名是什么?(含文件后缀)

一开始以为就直接是d00r.php但可惜并不是,也就是说d00r.php是后续生成的,所以我们只需要简单的构造一下条件就可以找到自带的后门文件
使用语句tcp contains "d00r.php"

就可以发现除了d00r.php出现在uri中,还有一条POST请求,也存在d00r.php

发现d00r.php是由ViewMore.php生成的
flag:ViewMore.php
ez_web_2
原题: 服务器的内网IP是多少?
选中d00r.php的POST请求流量追踪http就可以找到

flag:192.168.101.132
ez_web_3
原题: 攻击者往服务器中写入的key是什么?
还是上一题的http流,直接拖到最下面可以看到写入了一个文件

但是直接将内容进行base64-decode会发现解码出来还是乱码,将解码后的内容保存到文件当中,将这个文件放入winhex里面分析会发现这是一个zip文件,而且这个zip文件还是被加密的,而密码也可以在http流中找到

flag:7d9ddff2-2d67-4eba-9e48-b91c26c42337
tcpdump_1
原题: 攻击者通过暴力破解进入了某Wiki 文档,请给出登录的用户名与密码,以:拼接,比如admin:admin
首先我们先筛选http"往后面的部分看可以看到很多POST请求进行密码爆破
我们可以看到爆破是23794-41654的,然后我们查看详细内容,发现如果密码是错误的,那么服务器就会返回用户名或密码错误,然后我们构造如下语句
http && !http.request.uri contains "login" && !tcp contains "用户名或密码错误" && http.response.code !=404
首先将login登录包筛除,并且将返回了报错信息的回显包也筛出,包括前面有一段爆破路径的回显包也筛除掉,此时只剩下一些没有报错信息,并且不是登录包的信息和那条登录成功的回显包,那么我们只用在剩下的的数据中找到23794-41654这个区间的包就可以找到我们正确的用户名和密码

找到这个包,然后追踪http流

就可以获得答案
flag:TMjpxFGQwD:123457
tcpdump_2
原题: 攻击者发现软件存在越权漏洞,请给出攻击者越权使用的cookie的内容的md5值。(32位小写)
继续筛选http流量,我们可以发现刚进入zyplayer系统的时候cookie的第三个参数userid=2,然后页面回显的是测试人员此时我们都可以猜到userid=1就越权成功了
accessToken=f412d3a0378d42439ee016b06ef3330c; zyplayertoken=f412d3a0378d42439ee016b06ef3330cQzw=; userid=1
md5
383c74db4e32513daaa1eeb1726d7255
flag:383c74db4e32513daaa1eeb1726d7255
tcpdump_3
原题: 攻击使用jdbc漏洞读取了应用配置文件,给出配置中的数据库账号密码,以:拼接,比如root:123456
因为题目说明是JDBC漏洞读取了应用配置文件,所以我们先将http流量筛除
然后对数据流进行追踪(找靠近当时进行登录数据库连接的tcp流量进行追踪),追到流1601发现是读取密码的那条流量

flag:zyplayer:1234567
tcpdump_4
原题: 攻击者又使用了CVE漏洞攻击应用,执行系统命令,请给出此CVE编号以及远程EXP的文件名,使用:拼接,比如CVE-2020-19817:exp.so
根据jdbc的连接库发现是 postgresql ,查到最近的CVE对应的是 CVE-2022-21724(ps:这里没找出来看了其他师傅的wp)
根据后面的数据包可以推断出攻击文件是custom.dtd.xml

flag:CVE-2022-21724:custom.dtd.xml
tcpdump_5
原题: 给出攻击者获取系统权限后,下载的工具的名称,比如nmap
因为我们从上一题都看到了反弹shell的命令所以我们直接进行筛选tcp.port == 9999,然后进行tcp追踪流就可以找到这一条

所以这里下载的工具就是fscan
flag:fscan
hacked_1
原题: admIn用户的密码是什么?
首先筛选http数据,可以发现并没有很多条流量,而且login的包也很少,但是将username和password进行解码发现解码过后还是乱码并不是正常的字符串,此时怀疑是不是前端对其进行加密了,找到第一次访问这个页面的流量

发现是前端用进行了加密,我们获得了key和iv,然后利用在线工具就可以成功获得密码

flag:flag{WelC0m5_TO_H3re}
hacked_2
原题: app.config['SECRET_KEY']值为多少?
直接筛选tcp contains "SECRET_KEY"

将其解码就可以得到

flag:ssti_flask_hsfvaldb
hacked_3
原题: flask网站由哪个用户启动?
这题没有做出来,看了大佬的wp发现是在tcp流76处,将用户的token进行解密就可以得到启动的用户
解密得到
{'flag': 'red\n', 'username': "{%if session.update({'flag':lipsum['__globals__']['__getitem__']('os')['popen']('whoami').read()})%}{%endif%}"}
flag:red
hacked_4
原题: 攻击者写入的内存马的路由名叫什么?(答案里不需要加/)
在tcp流82这里比较可疑

flag:Index
总结
今年的陇剑杯还是很不错的,题目质量非常高,难度也还好 虽然我有很多道题没有做出来,都是偏blue team,但是也能发现自己还是又很多没有掌握的,很可惜今年没能进入线下 来年继续加油
系统提醒:请于9月25日10:00前在个人设置中更新支付宝姓名和支付宝账号,逾期视作自愿放弃8月份稿费。