2020年长安杯复盘WP

发布时间 2023-03-31 00:47:52作者: 古明地核

长安杯2020

检材一

1 检材 1 的操作系统版本是 ()A. CentOS release 6.5 (Final)B. Ubuntu 16.04.3 LTSC. Debian GNU/ Linux 7.8 (wheezy)D. CentOS Linux release 7.6.1810 (Core)
D

image-20230328173823577

2 检材 1 中,操作系统的内核版本是 ()(答案格式: “1.2.34” 数字和半角符号) 10
3.10.0

image-20230328174507750

3 检材 1 中磁盘包含一个 LVM 逻辑卷,该 LVM 开始的逻辑区块地址 (LBA) 是 () (答案格式: “12345678” 纯数字) 10
4 检材 1 中网站“www.kkzjc.com”对应的 Web 服务对外开放的端口是 ()(答案格式: “123456” 纯数字) 10
32000

image-20230328184121026

5 检材 1 所在的服务器共绑定了 () 个对外开放的域名(答案格式: “123” 纯数字) 10
3

image-20230328183843831

6 检材 1 所在的服务器的原始 IP 地址是 ()(答案格式: “172. 172.172.172” 半角符号) 10
192.168.99.3

image-20230328181017754

属实是丢大脸了……docker的默认IP就是172.17.0.1,这也是很多路由器和光猫会设置的地址。
正常方法做的话会有点麻烦,只能通过别人访问自己的记录来获得IP信息(因为是在内网中,也就没有配置公网IP)。所以,这里可以通过docker的日志来观察:docker logs 08

image-20230328194950602

可以看到一直有个222的IP访问目的IP的8091端口。8091其实就是本机nginx的反向代理端口,所以可以确定这个就是本机的原始IP。

7 嫌疑人曾经远程登录过检材 1 所在的服务器,分析并找出其登录使用的 IP 地址是 () (并使用该地 址解压检材 2)(答案格式: “172. 172.172.172” 半角符号) 10
192.168.99.222

image-20230328182020164

8 检材 1 所在的服务器,其主要功能之一为反向代理。找出“www.kkzjc.com”转发的后台网站所使用 的 IP 地址是 () (并用该 IP 地址解压检材 3)(答案格式: “172. 172.172.172” 半角符号) 10
192.168.1.176

端口转发到8091,看了一下到的是docker?

image-20230328184617060

image-20230328184653240

image-20230328185416599

该死的……最开始起docker的时候就已经起错了,用了命令“docker run -it nginx /bin/bash”,直接起了个新的容器。难怪我说怎么里面连根毛都没有……

9 嫌疑人曾经从题 7 的 IP 地址,通过 WEB 方式远程访问过网站,统计出检材 1 中该 IP 出现的次数为 () (答案格式:“888” 纯数字) 10
18

image-20230328202654528

image-20230328202857502

我这里其实还是多此一举了……他只问了用web访问,中间用逗号分隔,没有提到其他登录方式。

检材二

10 检材 2 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) 10
2D926D5E1CFE27553AE59B6152E038560D64E7837ECCAD30F2FBAD5052FABF37
11 检材 2 所在计算机的 OS 内部版本号是 ()(答案格式: “12345.7895” 半角符号) 10
18363.1082

image-20230328215442107

这样的版本号还不完整,必须再往后精确……所以只能去“运行”里面输入winver看。

image-20230329001152332

12 检材 2 所在计算机最后一次正常关机的时间为 ()(答案格式: “1970- 10-01 10:01:45” 精确到秒,半角符号) 10
2020-09-22 13:15:34

image-20230328215622824

这到底是什么原理?这也能不一样?

image-20230329002122816

13 检材 2 中,VMware 程序的安装时间为 ()(答案格式: “2020-01-01 21:35” 精确到分钟,半角符号) 10
2020-09-18 17:54

image-20230328215711750

tnnd,应用程序的安装时间也是坑人的?!估计这里的意思是“开始安装的时间”,即真正的安装时间要从安装包的运行时间看……

img

14 检材 2 中,Vmware.exe 程序总计启动过 () 次(答案格式: “5” 纯数字) 10
8

image-20230328215905860

15 嫌疑人通过 Web 方式,从检材 2 访问检材 1 所在的服务器上的网站时,连接的目标端口是 () (答案格式: “12345” 纯数字) 10
8091

image-20230328220038945

因为是web方式,也就很自然地想到是用浏览器了。

16 接 15 题,该端口上运行的进程的程序名称 (Program name) 为 ()(答案格式: “avahi-deamon” 字母和半角符号组合) 10
docker-proxy

image-20230328184653240

又回到检材1了……

17 嫌疑人从检材 2 上访问该网站时,所使用的域名为 ()(答案格式: “www.baidu.com” 半角符号) 10
www.sdhj.com
18 检材 2 中,嫌疑人所使用的微信 ID 是 ()(答案格式: “abcde8888” 字母数字组合) 10
sstt119999

卡了一小会儿,一直以为是windows本地安装的微信,直到我找了一个ios备份文件……

image-20230328221919844

image-20230328221849489

19 分析检材 2 ,嫌疑人为推广其网站,与广告位供应商沟通时使用的通联工具的名称为 () (答案格式: “Wechat ” 不区分大小写) 10
telegram

image-20230328221629100

这里要求找的是广告位供应商

image-20230328222145985

20 分析检材 2 ,嫌疑人使用虚拟货币与供应商进行交易,该虚拟货币的名称是 ()(答案格式: “bitcoin” 不区分大小写) 10
doge

image-20230328222324499

image-20230328222402103

……狗狗币

21 上述交易中,对方的收款地址是 ()(答案格式: “abC1de3fghi” 大小写字母数字组合) 10
DPBEgbwap7VW5HbNdGi9TyKJbqTLWYYkvf

好麻烦啊……

22 上述交易中,嫌疑人和供应商的交易时间是 ()(答案格式: “2020-01-01 21:35:54” 精确到秒,半角符号) 10
2020-09-20 12:53

这里又卡了一下。还好很快找了线索。

image-20230328225435083

虚拟机被加密了,而且从聊天记录里面看似乎他们也不记得密码了。这样一来,剩下的也只能爆破。

既然都直说在github上,那工具还是很好找的:https://github.com/axcheron/pyvmx-cracker

image-20230329004839652

解密之后记得给虚拟机解除密码,不然取证软件会无法识别镜像(我在这里被卡了好久)。之后就是常规流程了。

image-20230331002750173

24 检材 2 中,嫌疑人使用的虚拟机的虚拟磁盘被加密,其密码为 ()(答案格式: “aoeiou”小写字母) 10
zzzxxx

image-20230329010309815

25 检材 2 中,嫌疑人发送给广告商的邮件中的图片附件的SHA256 值为 () ; (忽略邮件状态)(答案格式: “abcdefg” 小写字母) 10
cc7ea3ab90ab6b28417e08c715c243ce58ea76d71fd141b93f055a58e9ba561a

image-20230329010533160

26 检材 2 中,嫌疑人给广告商发送广告图片邮件的发送时间是 () (忽略邮件状态)(答案格式: “2020-01-01 21:35” 精确到分钟,半角符号)2020-09-20 12:53 10
27 检材 2 中,嫌疑人的邮箱密码是 ()(答案格式: “abcde123456” 字母符号数字组合,区分大小写)honglian7001 10
28 检材 2 中,嫌疑人使用了 () 远程管理工具,登录了检材 1 所在的服务器。(答案格式: “abcde” 字母,不区分大小写)

xshell
10
29 检材 2 中,嫌疑人使用上述工具连接服务器时,使用的登录密码为 ()(答案格式: “aBcd#123” 数字符号字母组合,区分大小写)qwer1234!@#$ 10

没啥线索……暂时先跳过

我才发现原来要先把虚拟机移除加密之后才可以给取证软件识别……真是失策

image-20230329121041801

image-20230329121301026

image-20230329121121110

检材三

30 检材 3 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) 10
FF593FCCB3770B8845A3334631F8E80807638EE722C5AA7B34E877589857C3BA

image-20230329012234552

31 检材 3 所在的计算机的操作系统版本是 ()A. Windows Server 2012B. Windows Server 2008 R2C. Windows Server 2008 HPC EditionD. Windows Server 2019 LTSB 10
C

image-20230329012334147

32 检材 3 中,部署的网站名称是 ()(答案格式: “abcdefg” 小写字母) 10
card

image-20230329012810559

33 检材 3 中,部署的网站对应的网站根目录是 ()(答案格式: “d :\path1\path2\path3” 绝对路径,半角符号,不区分大小写) 10
c:\inetpub\wwwroot\v7w
34 检材 3 中,部署的网站绑定的端口是 ()(答案格式: “12345” 纯数字) 10
80
35 检材 3 中,具备登陆功能的代码页,对应的文件名为 ()(答案格式: “index.html ” 字母符号组合,不区分大小写) 10
dllogin.aspx

image-20230329014005835

image-20230329014357009

image-20230329014331469

36 检材 3 中,请对网站代码进行分析,网站登录过程中,代码中对输入的明文密码作了追加 () 字符 串处理(答案格式: “a1b2c3d4” 区分大小写) 10
OvO

image-20230329014720009

37 检材 3 中,请对网站代码进行分析,网站登录过程中,代码中调用的动态扩展库文件的完整名称为 ()(答案格式: “abc.html.ABC” 区分大小写,半角符号,包含扩展名) 10
App_Web_dllogin.aspx.7d7c2f33.dll

image-20230329121524949

这方面我不是很懂,只是看到有一个“继承”,就猜测可能是这个。注意动态链接库一般都有dll结尾,所以加上去。image-20230329122451478

38 检材 3 中,网站登录过程中,后台接收到明文密码后进行加密处理,首先使用的算法是 Encryption 中 的 () 函数(答案格式: “Bcrypt ” 区分大小写) 10
AESEncrypt

image-20230329141253581

​ .net逆向还是很新奇的……至少在这里,代码段只有这么一点,其他的各种引用就占了大半,头都晕了。

39 检材 3 中,分析该网站连接的数据库地址为 () 并使用该地址解压检材 4(答案格式: “172. 172.172.172” 半角符号) 10
192.168.1.174

image-20230329144421780

server=192.168.1.174,1433;uid=sa;pwd=c4f2737e88;database=v7sq3;

使用传统的解密脚本怎么也跑不出来,一怒之下直接找个网站跑原脚本了……

40 检材 3 中,网站连接数据库使用的密码为 ()(答案格式: “Abc123!@#” 字母数字符号组合,区分大小写) 10
c4f2737e88
41 检材 3 中,网站连接数据库服务器的端口是 ()(答案格式: “12345” 纯数字) 10
1433

建材四

42 检材 4 的原始磁盘 SHA256 值为 ()(答案格式: “abcdefg” 不区分大小写) 10
E5E548CCAECD02608A0E053A5C7DCDBFBDD4BE5B0E743EB9DC8E318C369BEBC8
43 重构该网站,分析嫌疑用户的推广链接中参数里包含的 ID 是 ()(答案格式: “a1b2c3d4” 字母数字组合,小写) 10
abe6d2ee630379c3

检材三——通过.NET直接和检材四进行连接。因为经过了aes加密,所以这里需要对检材四的IP进行改动,检材三保持不变。而检材三本身也是网站服务器,所以从这里入手即可。

检材二是反向代理服务器,本身没啥东西。检材一……太久远了,是跳板机来着吗?反正一和二不用管太多。

首先就是重建数据库。因为IP、端口、账号密码都是已知的,所以这里就直接配置一下网络就行了……我原以为真的会这么容易。

可惜检材四的centos没有ip-tools,又需要分配静态IP,而且数据库还是运行在docker里面。好家伙,我不熟悉的东西全部一股脑全部来了是吧。

配置还是老流程,先对网卡ens33进行静态IP的分配(我这里因为是两台电脑做题,所以试了下用桥接配置,没想到成功了),顺便配置DNS服务器。然后开启docker,再根据命令历史开启容器sql1,成功打开mssql。最后就直接连接服务器就可以了。

img

img

image-20230329200414523

image-20230329200425996

数据库能连上,已经是成功一半了。后面再测试一下网站回显,结果也是正常的。

image-20230329200647838

至此,网站重建算是完成了。可以开始着手取证了。

首先就是尝试进入网站后台。这里我们可以从网页源代码看到数据库的密码全都是md5加密的,所以我们可以直接去cmd5上面撞一下。

image-20230329201311410

image-20230329202200076

image-20230329201253010

然后……照理说应该已经成功了才对啊……然后怎么也搞不出来了。

查了一下大佬的攻略,发现数据库的函数里面还有两层过滤,真的是坑啊!
源码里面还调用了PD_UserLogin函数来对账户数据进行判断,所以进入数据库找一下

img

image-20230330235852317

源码还是很清晰的,主要解释了两个方面:
1.从DW_Web里面查询数据,看看用户所在的IP及域名是否在数据库中并且是否有权限。如果不在的话,会在后面对用户的ID进行进一步校验(然而ID不可能通过审核)

image-20230331000947488

这里就需要换上网站的IP地址了。

2.通过IP审核后,才对用户的账密进行校验,并且判断用户是否被删除。综合下来,只有liwente1314520是符合条件的。
但是注意,该用户的原密码的md5是撞不开的。自己直接搞个密码然后md5加密再换上去也是不行的,加密过程中似乎有盐,总之不是正常的md5算法!
最直接的方法其实还是逆向——改源码,把网站的“登录失败”回显换成网站加密之后的密码。

image-20230331001551197

image-20230331001739477

把这串密码替换到数据库中去,就可以登陆了。

image-20230329220016029

44 重构该网站,该网站后台的代理用户数量为 ()(答案格式: “12345” 纯数字) 10
26

image-20230329220033079

每页显示9行,但注意最后一页只有8个。

45 重构该网站,该网站注册用户中共有过 () 个代理 (包含删除的数据)(答案格式: “12345” 纯数字) 10
32

image-20230329225531991

46 重构该网站,对补发记录进行统计,统计 2019 年 10 月 1 日后补发成功的金额总值 () (答案格式: “123456” 纯数字) 10

image-20230329222631872

这边实在是没办法了……试着反查数据库,结果失败了。最关键的是,网上的大佬是直接用爬虫爬的数据……似乎确实是个好办法,我之后也得研究一下,也省去逆向的功夫了。

47 检材 4 中,对“TX_IpLog”表进行分析,所有在“武汉市”登录的次数为 ()(答案格式: “” 纯数字) 10
2829

image-20230329224351435

tnnd,这数据库是有分页的……

image-20230329225805863

48 重构该网站,该嫌疑人下属代理“ liyun10”账户下的余额有 () 元(答案格式: “123456” 纯数字) 10
1066449

image-20230330000303618

49 接上一题,该用户的推广 ID 是 ()(答案格式: “a1b2c3d4” 字母数字组合,小写) 10
d0fdd7a9a010d37e

image-20230330000502887

50 接上一题,该代理商户的最后一次登陆时间是 ()(答案格式: “2020-01-01 21:35” 精确到秒,半角符号) 10
2016-9-6 0:43:07

image-20230330000530030

总结

整整两天时间都搭这套题目上面了……但确实很有意思,题目后期到处都是坑,需要审计需要逆向需要解密,充分考验了选手的综合能力。我从中也积累了不少经验,至少不会以为还原出网站就万事大吉了吧(笑)
话说回来,长安杯是个人赛吗?如果是的话,感觉有点离谱了……