前两天,大师傅说,有个比赛让我看看,这里记录以下。

misc1

给到一个附件,image-20250905115301596

观察流,看到有rememberMe=的流量,大概率是shiro反序列化了,上面也执行了一些命令,但是没有执行查看flag命令,这里了内存马image-20250905115540587

且流量后面可以看到打了内存马,用了内存马,image-20250905115643208

用大师傅的软件反编译,可以看到内存马的key,哥斯拉解密不需要pwd,只需要key即可,流量少的话直接厨子即可

image-20250905120201484

看了很多流没看到flag,索性看一下请求包,发现有echo的语句。

666c61677b63306e67723474735f74305f66316e645f7468335f7365637265745f6f465f6834636b33727d

image-20250905135041776

misc2

image-20250905135155707

最下面有一个flag。zip,直接导出即可。发现是假的
image-20250905135233842

secret.zip是真的。

misc3 xiaozhang

image-20250905140128431

看到

POST /submit.php?id=1389642286 HTTP/1.1,大概率就是cs流量了,给了一个raw,那必是在其中找私钥了,

网上找了一下,发现是原题,NepCTF2025 misc部分 客服小美
给一个大师傅的wp连接https://blog.csdn.net/edigexiong/article/details/149725919

这里就不在复现了。

misc4 比赛未作出

开局给到一个流量包,
可以看到有很多流量image-20250905140808425

随便点一个是sqlmap的注入流量

image-20250905140737284

那就经典的misc日志分析提flag了,以往这里都是get流量,且最后用的=,用等于的话,盲注只需提最后一个字符即可,然后这个是>,那么就需要具体的进行分析了,
id=1%27%20AND%20ORD%28MID%28%28SELECT%20IFNULL%28CAST%28table_name%20AS%20NCHAR%29%2C0x20%29%20FROM%20INFORMATION_SCHEMA.TABLES%20WHERE%20table_schema%3D0x73746f7265%20LIMIT%200%2C1%29%2C6%2C1%29%29%3E96%20AND%20%27SpqU%27%3D%27SpqU&Submit=Submit

id=1' AND ORD(MID((SELECT IFNULL(CAST(table_name AS NCHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x73746f7265 LIMIT 0,1),6,1))>96 AND 'SpqU'='SpqU&Submit=Submit,显卡这个流量,6,1))>96 可以看到是用的大于,如果这里直接提最后一位会不准
image-20250905141302196

为什么呢,因为sqlmap使用的是二分法,在判断的时候,会进行>64 , > 96, > 104,这样判断,我们只知道他的上线而不知道他的下线,怎么判断>64 是否对,在盲注里用字符串大小判断,其实也就是判断回显内容,所以这里,我们要进行判断回显内容,

image-20250905141803402

根据回显内容,可以看到注入的是dvwa,dvwa在盲注时,用

User ID exists in the database.
判断image-20250905141850145

如果正确,就是User ID exists in the database.,错误就是\t\t

User ID is MISSING from the database.
\r\n

image-20250905142018658

这样的话,我们就可以进行区分了,下一步就是提取流量了,sqlmap跑的流量很多,一个一个看肯定不现实,所以用脚本提出了所有符合条件的,这里注意,先进行
image-20250905142216400

http.response过滤,我们要根据回显包的内容,来提取请求报的内容,观察到,
image-20250905142317728

数据包回显在400左右时,回显内容是我们要到,取个中,小于700,

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
# 用法: ./extract.sh input.pcapng output.txt

pcap_file=$1
out_file=$2

# 临时文件保存 stream
tmp_streams=$(mktemp)

# 1) 提取所有 http.response 且包含 database. 的 stream
tshark -r "$pcap_file" -Y 'http.response && tcp.len <700' \
-T fields -e tcp.stream | sort -u > "$tmp_streams"

# 2) 根据 stream 号提取请求+响应
> "$out_file"
while read stream; do
tshark -r "$pcap_file" -Y "tcp.stream == $stream" \
-O http >> "$out_file"
done < "$tmp_streams"

rm "$tmp_streams"
echo "结果已保存到 $out_file"
//./tiqu2.sh att.pcapng der.txt

然后,找gpt写一个脚本,先把符合的流量的流序号进行拿出来,在进行把序号的流的全部内容导出。目前来看只能用这种方式提了,
image-20250905142642576

查看der 就是符合所有条件的数据包了,然后在进行正则匹配。只要payload即可。

strings re.txt| grep "id=1" > re222.txt

image-20250905143029111

就会有一大堆这个数据,利用脚本提取即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import urllib.parse

import re
from tkinter import E
f = open("D:\\vscodework\\work\\za\\data3123.txt","rb")
#读取a.txt
st = f.read().decode("utf-8","ignore")
st = urllib.parse.unquote(st)
lis = re.findall("2,1\),([0-9]*),1\)\)>([0-9]*)",st)
print(lis)
aa = ['' for i in range(50)]
for t in lis:
#('1', '33'), ('1', '34'), ('1', '35'), ('1', '36'), ('1', '37'),
#将数字为1的索引一个个填充,正好到最后一个,换索引
aa[int(t[0])] = chr(int(t[1])+1)
#print(aa)
for i in aa:
print(i, end="")

这里注意正则别写错了,每次的正则都不一样,`id=1’ AND ORD(MID((SELECT IFNULL(CAST(table_name AS NCHAR),0x20) FROM INFORMATION_SCHEMA.TABLES WHERE table_schema=0x73746f7265 LIMIT 0,1),6,1))>96 AND ‘SpqU’=’SpqU&Submit=Submit
image-20250905143255109

可以得到前半段,接下还有后半段,
image-20250905143341125

在最下面,我们可以看到,有php的流量,大概率是木马的流量了,
image-20250905143434964

这里可以看到有这个referer,这就是冰蝎的流量,我们在以前的二开冰蝎中分析过,冰蝎的作者,特意加的这个referer。那么接下来就是找马,找key,一般文件上传都是post传参,直接过滤post流量

image-20250905143619313

似乎并没有上传的流量,但是我们可以看到,icon流进行了上传
image-20250905143659689

这里追踪可以看到上传了zip,里面文件叫key,导出即可,
image-20250905143831081

发现要密码,再从流量包中找密码,试了在sql注入中的第一个字段,第二个字段都不对

image-20250905144001164

无果,尝试爆破

image-20250905144051624

发现为弱口令,
image-20250905144152229

这里,key为这个,可以发现,这不是冰蝎3的,冰蝎三是不能设置密码的,也就是这是设置的key,冰蝎3默认的key必须是16进制的,就是密码的md5的前十六位,必然不可以有wklkju,那么这里可能还要回去找🐎,没有马的话,只能猜了,
image-20250905144603630

这里直接猜,就是aes的马,直接上面的哥斯拉直接改下key即可

image-20250905144843488

即可得到后半部分flag,拼接即可。

web1 比赛中未出

开局给到一个jar,说是shiro,
image-20250905145203274

反编译查看,存在接口,存在反序列化,因为是shiro,所以需要key,但全部jar看完为找到key。

2022MTCTFWP-Web ezjava,考过,;绕过

image-20250905145403044

image-20250905145608886

这个漏洞可以绕过。
image-20250905145701457

image-20250905145710414

接受input,
image-20250905150322699

这里用大师傅的工具直接生成链子,生成回显的,记得要urlencode,在bp中发包。

image-20250905150428760

image-20250905150457326

head执行命令即可。此题在大师傅A_llen帮助下完成,感谢大师傅。

总结

emmm 太菜了
一直在路上