决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

admin 2026年7月18日23:58:42评论123 views字数 14078阅读46分55秒阅读模式

本文是第十届御网杯网络安全大赛决赛的数据安全方向Writeup,来自信阳师范大学半亩塘的一棵数队伍。文档记录了现场比赛思路与赛后复盘,包括三个子任务:过度采集、隐藏接口暴露和传输加密缺陷,涉及API接口异常字段查找、未授权内部接口发现以及网络流量分析。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

今年御网杯依旧是一等奖,可惜经费有限没打成网络安全赛道(听说题目也挺有趣的)。该文档为现场比赛思路+赛后复盘,有部分题目因比赛时间没来得及做,赛后根据题目附件给出的答案(可能有误)。

任务1

A1简单 — 过度采集(数据收集阶段)

子任务描述:

运维审计发现,居民查询API可能返回了超出业务范围的字段。请调用接口/citizens/中的api接口,找出其中Web页面未展示的异常字段名称.

子任务分值:300

直接登录ssh,进入docker的shell拿出java源码进行反编译(这个刚开始没做出来,后面的题目给提示说是容器了,就考虑看看docker镜像,没想到还真能有所发现)

root@Meedo-PEN:~/test1/gov_db_data# docker images | grep gov-platformgov-platform:latest              079592edd3e8        789MB          391MB        gov-platform:with-https          89879ee928d7       1.06GB          499MB        gov-platform:with-https-fixed    d27d4651d830       1.08GB          504MB   U    gov-platform:with-https-fixed2   7c44cc0b5901       1.11GB          510MB   root@Meedo-PEN:# docker psCONTAINER ID   IMAGE                           COMMAND       CREATED       STATUS       PORTS                                                                                          NAMESe2d27a073d1b   gov-platform:with-https-fixed   "/start.sh"   4 weeks ago   Up 2 hours   0.0.0.0:18080->8080/tcp, [::]:18080->8080/tcp, 0.0.0.0:18443->8443/tcp, [::]:18443->8443/tcp   gov-platformroot@Meedo-PEN:#

进入docker的shell

docker exec -it e2d27a073d1b sh
e2d27a073d1b:/var/lib/postgresql/data# cd /app/e2d27a073d1b:/app# lsapp.jar                 application.properties  platform.jarapplication-debug.yml   exportse2d27a073d1b:/app#

逆向分析发现其中一个class里面写了api接口以及对应的flag。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

flag{448ae67da0a7cf0bbfe6bad7caa12b46}

任务2

A2简单 — 隐藏接口暴露(数据收集阶段)

子任务名称:

A2简单 — 隐藏接口暴露(数据收集阶段)

子任务描述:

系统审计发现平台可能存在未文档化的内部接口且该接口存在未授权访问获取所有用户的数据,找到该隐藏接口的完整URL路径。提交答案例如:/api/get/alldatainfo

子任务分值:300

源码分析,发现在InternalApiController.class文件存在api以及对应路由,拼接起来即提交答案。

但是这个flag不知道是干吗用的😂😂😂,另一个jar包里面就没有这个flag。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

/api/v1/internal/citizens

任务3

A3中等 — 传输加密缺陷(数据传输阶段)

子任务名称:

A3中等 — 传输加密缺陷(数据传输阶段)

子任务描述:

审计发现,平台登录页面对密码进行了前端加密后再传输。安全团队截获了一段网络流量/root/capture.pcap,需要还原传输中用户的真实密码。提交答案例如:Aa123456

子任务分值:300

ssh连接上服务器,下载流量包进行分析。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

过滤HTTP流量,查看数据包。发现是登录操作,存在前端加密,去前端源码寻找一下,发现加密js文件:login-crypto.js

// 前端传输安全加密模块(2026政务系统安全规范v3.2)// 采用异或加密+Base64编码,防止密码在传输过程中被明文截获functionsecureEncrypt(plain, key) {var result = "";for (var i = 0; i < plain.length; i++) {        result += String.fromCharCode(plain.charCodeAt(i) ^ key.charCodeAt(i % key.length));    }return btoa(result);}document.addEventListener('DOMContentLoaded', function() {var form = document.querySelector('form');    form.addEventListener('submit', function(e) {var pwdInput = document.querySelector('input[name="password"]');var encrypted = secureEncrypt(pwdInput.value, 'GovData2026');        pwdInput.value = encrypted;    });});

分析后发现就是一个简单的Base64 → 循环密钥 XOR

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数
import base64e="CgYEJQYRIVFfXVp1X0Ry"k=b"GovData2026"d=base64.b64decode(e)r=''.join(chr(b^k[i%len(k)])for i,b in enumerate(d))print(r)

答案:

Mirage@cool2026

任务4

A4困难 — HTTPS配置故障排查(数据传输阶段)

子任务描述:

题目描述:等保测评要求平台启用HTTPS,但部署后HTTPS服务无法正常访问,运维人员已临时回退至HTTP模式。请排查故障根因。登录服务器,分析HTTPS服务启动失败的原因,定位存在错误的配置文件及具体行号。例如 :SecurityConfig.class:26

子任务分值:300

源码反编译,config里面有HTTPS相关配置,在HttpsConfig.class里面发现有相关配置信息。尝试拿这些信息登录,发现配置信息的密码填写的是错误的,删掉感叹号变成正常的了。因此判断是第19行密码配置有误。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

HttpsConfig.class:19

任务5

A5中等 — 脱敏失效(数据存储阶段)

子任务描述:

题目描述:平台在居民列表页对身份证号和手机号进行了脱敏展示。但安全测试发现,某些操作路径下可以绕过脱敏规则,查看到完整的敏感数据。找到系统中能查看完整身份证号(不带有****)的路径或方法,定位导致脱敏失效的错误代码位置。例如: SecurityConfig.class:26

子任务分值:300

完整身份证号泄露接口:

GET /api/v1/internal/citizens

漏洞代码位于:

InternalApiController.java:36

map.put("idCard", c.getIdCard());

该接口调用 CitizenService.findAll() 取得所有居民数据后,直接将实体中的 idCard 原文写入响应,没有执行脱敏处理,因此可查看不含 **** 的完整身份证号(手机号也同样以原文返回)。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

InternalApiController.java:36

任务6

A6中等 — 脏数据删除(数据存储阶段)

子任务名称:

中等 — 脏数据删除(数据存储阶段)

子任务描述:

平台的居民数据管理模块共管理3000条居民记录。系统审计发现,部分数据在前端列表中被删除,但后端数据库中并未真正移除,形成了「脏数据」。分析系统的数据查询机制,找出所有前端已删除但后端仍保留的脏数据记录,并提交这些记录的ID编号。提交答案格式例如:用英文逗号分隔所有脏数据ID(如 1,2,3,4,5,6,7,8)

子任务分值:300

操作步骤:导出文件“居民数据导出_20260608_093650.csv”,在docker容器里面。

mkdir -p /tmp/host_dst
docker exec e2d27a073d1b sh -c "cd /app && tar -czvf /tmp/tmp_archive.tar.gz ."
docker cp e2d27a073d1b:/tmp/tmp_archive.tar.gz ./backup_all.tar.gz
docker exec e2d27a073d1b rm -f /tmp/tmp_archive.tar.gz

前端既然已经删除了数据,那么可以直接使用burp进行爬取,将前端展示的编号保存在txt里,对照查找缺失数据即可。

脚本:

import osfilename = "12121.txt"full_range = set(range(1, 3001))with open(filename, 'r', encoding='utf-8') as f:    current_numbers = set()for line in f:        clean_line = line.strip()ifnot clean_line:continue        num = int(clean_line)        current_numbers.add(num)missing_numbers = full_range - current_numberssorted_missing = sorted(missing_numbers)print(f"共发现 {len(missing_numbers)} 个缺失的数字:")for num in sorted_missing:    print(num)

答案:

21,528,978,1223,1523,2093,2365,2966

任务7

A7简单 — 备份文件泄露(数据存储阶段)

子任务名称:

A7简单 — 备份文件泄露(数据存储阶段)

子任务描述:

平台在升级维护过程中,可能遗留了数据库备份文件。这些文件若未妥善保护,可能暴露大量敏感信息。通过目录扫描或信息收集,找到系统中遗留的备份文件,下载并分析后获取flag。

子任务分值:300

系统备份管理 http://192.168.1.200:18080/data-sync/

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数
---- Sensitive audit record (DO NOT DELETE)--INSERTINTO operation_log (id, username, action, target, ip, result, create_time) VALUES(9999, 'admin', '数据库备份', '全量居民数据导出', '127.0.0.1', 'flag{805548f40483527de74d3625a4adea33}', '2026-06-01 03:00:00');-- End of dump

答案:

flag{805548f40483527de74d3625a4adea33}

任务8

A8中等 — 日志注入(数据处理阶段)

子任务描述:

平台在/logs页面展示了所有用户的登录与操作记录。安全测试人员怀疑,日志记录功能存在输入过滤缺陷,外部输入可能污染日志内容。请构造一个能够注入日志成功的Payload,成功向/logs页面注入一条视觉上独立的伪造日志记录,提交系统返回的确认字符串[]中的内容。

子任务分值:300

在日志处理相关源代码中发现:

    String actualUsername = username.split("n")[0].trim();

当用户名中包含换行符 n 时,它会被写到 /logs 页面的“操作对象”字段中。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

直接在源码里面就可以找到登录成功的系统返回的确认字符串了:

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

LOG_INJECTION_CONFIRMED

任务9

A9中等 — 批量处理越权(数据处理阶段)

子任务描述:

平台存在居民数据处理的测试接口,由于相关测试接口权限管理未完善,导致普通办事员可调用本不应有权限的数据处理接口,执行超出自身权限的操作。以普通办事员身份登录,尝试调用相关数据处理接口,成功执行超出自身权限的操作后对返回的字符串进行提交。

预置账号:lisi / ls123456

子任务分值:300

查看源码,发现BatchController 直接暴露了批量删除接口:

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

BATCH_DELETION_PRIVILEGE_ESCALATION_CONFIRMED

任务10

A10简单 — 越权导出(数据交换阶段)

子任务描述:

平台提供居民数据导出功能,但该功能未在任何前端页面提供操作入口。提交该接口的完整路径,例如:/api/get/alldata

预置账号:lisi / ls123456

子任务分值:300

在源码中直接全局搜索导出,直接可以发现相关路由:

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

/api/exports/trigger

任务11(未完成)

A11中等 — 数据清洗(数据交换阶段)

子任务描述:

政务数据交换平台在容器 /root/DataExchange/目录下存放了一批待交换的居民数据文件 resident_data_raw.csv,但该数据文件在生成过程中混入了少量不符合规范的脏数据。进入容器/root/DataExchange/ 目录,根据同目录下的“数据规范要求.md”,对resident_data_raw.csv进行数据清洗,剔除所有不符合规范的记录。输出为 UTF-8 with BOM 格式的 CSV,换行符采用CRLF,提交清洗后文件的 MD5 值。

子任务分值:300

未完成

任务12(未完成)

A12中等 — 数据脱敏(数据交换阶段)

子任务描述:

清洗后的居民交换数据仍包含大量敏感个人信息。根据数据交换安全规范,在将数据提供给了第三方或下游系统之前,必须对敏感字段进行脱敏处理,防止隐私泄露。在容器 /root/DataExchange/ 目录下,根据“数据脱敏要求.md”,对清洗后的数据进行脱敏处理。输出为 UTF-8 with BOM 格式的 CSV,换行符采用CRLF,提交脱敏后文件的 MD5 值。

子任务分值:300

未完成

任务13

A13简单 — 数据残留分析(数据销毁阶段)

子任务描述:

居民的身份信息被归为公开级,根据数据安全规范,需要对该用户的所有相关信息从系统中彻底抹除。管理员声称已执行了完整的物理删除操作,但安全团队怀疑销毁并不彻底。在系统中找到已被删除居民对应的完整身份证号。

子任务分值:300

/var/lib/containerd/io.containerd.snapshotter.v1.overlayfs/snapshots/267/fs/app/exports/

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

点开就有,这里就不放出来了

任务14

A14简单 — 数据导出溯源(数据溯源与处置阶段)

子任务名称:

A14简单 — 数据导出溯源(数据溯源与处置阶段)

子任务描述:

智慧政务平台记录了所有数据导出操作。安全团队在审查时发现,其中隐藏着一条异常的数据导出记录——该记录在非工作时间进行了全量数据导出,且未经审批。请定位这条异常导出记录,提交该记录的发生时间(格式:YYYY-MM-DD /HH:MM)。

子任务分值:300

http://192.168.1.200:18080/exports

翻到一个全局导出2999,并且待审批的,时间格式统一一下就行

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

2025-11-29/00:17

任务15

A15中等 — 数字水印溯源(数据溯源与处置阶段)

子任务描述:

暗网监控中发现了一份疑似从本系统泄露的居民数据文件 residents.csv。安全团队怀疑该文件在导出时被做了某种标记,其中隐藏了导出者的身份信息。访问泄露文件 http://192.168.1.200:18080/leaked/residents.csv,下载并分析该文件,找出数据泄露者的用户名。

子任务分值:300

打开下载的文件,发现存在零宽。解密一下即可。

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

答案:

RolloTomasi

任务16

A16简单 — 勒索程序识别(应急响应阶段)

子任务名称:

A16简单 — 勒索程序识别(应急响应阶段)

子任务描述:

题目描述:应急响应过程中,安全团队在GOV容器 /DBData 目录下发现了一份可疑的加密文件 gov_citizens.db.DBKiller,怀疑是勒索程序对数据库进行了加密。选手需要分析该加密文件,提取勒索程序植入的 Banner 标识信息.

子任务分值:300

操作:

root@Meedo-PEN:~# file ./gov_citizens.db.DBKiller./gov_citizens.db.DBKiller: dataroot@Meedo-PEN:~# ls -lh ./gov_citizens.db.DBKiller-rw-r--r-- 1 root root 761K Jun  9 18:45 ./gov_citizens.db.DBKillerroot@Meedo-PEN:~# strings -n 10 ./gov_citizens.db.DBKiller | sort | uniq > /tmp/gov_banner_extract.txt

查看提取结果

cat /tmp/gov_banner_extract.txt';nX`z8Kk0+mAO/M  |di-E,3JS/_GG$3"ZhQqUun97BLA+1>PbI8:~xWilq]7zLj;.Q(bo}tM2jL+21B'@i[BD`)MpvA4!.7*s% N!DBKillerByMirageFCNvt4TpM Jb0FPbeNE5RSR[r}x>9UT9,qJw15/WW'UJe-o|f|Z^XY(PNwCj[#;W ekD[pAbK6/Cx0kRn[dO&0Y,qG^Ii5Li#/rj68:iz+luS&?M1lJ`uz:1#=0lq[1,1^-w:Lu       n5#qCd*Xv,QNP|TVOEwuxbBA-Vt/{brkn3#M.P |U1Uha)6KN&J}il[D:/(n5~~BML<Fm:(

答案:

DBKillerByMirage

任务17

A17困难 — 勒索密钥提取(应急响应阶段)

子任务描述:

安全团队在服务器上找到了勒索程序遗留的私钥文件 private.pem。请尝试使用该私钥还原被加密的文件,提交攻击者加密gov_citizens.db文件所使用的AES Key的md5值。

子任务分值:300

程序未剥离符号,能够直接观察函数名和链接的 OpenSSL API,发现关键信息:EVP_aes_256_cbc加密

对称加密算法:AES-256-CBC;AES 密钥长度:32 字节;IV 长度:16 字节;RSA 密钥封装算法:RSA-OAEP;OAEP 摘要算法:SHA-256;MGF1 摘要算法:SHA-256;AES 加密未使用填充(程序调用 EVP_CIPHER_CTX_set_padding(ctx, 0))。

使用 private.pem 按 RSA-OAEP-SHA256 参数解密:

openssl pkeyutl -decrypt   -inkey private.pem   -in encrypted_key.bin   -pkeyopt rsa_padding_mode:oaep   -pkeyopt rsa_oaep_md:sha256   -pkeyopt rsa_mgf1_md:sha256   -out aes_key.bin

查看 AES Key:

xxd -p -c 999 aes_key.bin

操作步骤:

┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ file dbkillerdbkiller: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=99bb46e63336e1733966e61b31d2fddfcfc5f1fb, for GNU/Linux 3.2.0, not stripped┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ strings -a dbkiller | sort -uencrypt_file_endEVP_aes_256_cbcEVP_aes_256_cbc@OPENSSL_3.0.0EVP_CIPHER_CTX_freeEVP_CIPHER_CTX_free@OPENSSL_3.0.0EVP_CIPHER_CTX_newEVP_CIPHER_CTX_new@OPENSSL_3.0.0EVP_CIPHER_CTX_set_paddingEVP_CIPHER_CTX_set_padding@OPENSSL_3.0.0EVP_EncryptFinal_exEVP_EncryptFinal_ex@OPENSSL_3.0.0EVP_EncryptInit_exEVP_EncryptInit_ex@OPENSSL_3.0.0EVP_EncryptUpdateEVP_EncryptUpdate@OPENSSL_3.0.0EVP_PKEY_CTX_freeEVP_PKEY_CTX_free@OPENSSL_3.0.0EVP_PKEY_CTX_newEVP_PKEY_CTX_new@OPENSSL_3.0.0EVP_PKEY_CTX_set_rsa_mgf1_mdEVP_PKEY_CTX_set_rsa_mgf1_md@OPENSSL_3.0.0EVP_PKEY_CTX_set_rsa_oaep_mdEVP_PKEY_CTX_set_rsa_oaep_md@OPENSSL_3.0.0EVP_PKEY_CTX_set_rsa_paddingEVP_PKEY_CTX_set_rsa_padding@OPENSSL_3.0.0EVP_PKEY_encryptEVP_PKEY_encrypt_initEVP_PKEY_encrypt_init@OPENSSL_3.0.0EVP_PKEY_encrypt@OPENSSL_3.0.0EVP_PKEY_freeEVP_PKEY_free@OPENSSL_3.0.0EVP_sha256EVP_sha256@OPENSSL_3.0.0┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ dd if=gov_citizens.db.DBKiller of=encrypted_key.bin   bs=1 skip=16 count=256 status=none┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ openssl pkeyutl -decrypt   -inkey private.pem   -in encrypted_key.bin   -pkeyopt rsa_padding_mode:oaep   -pkeyopt rsa_oaep_md:sha256   -pkeyopt rsa_mgf1_md:sha256   -out aes_key.bin┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ xxd -p -c 999 aes_key.bin1388f107667a635a73dce380fb16c73a4bfb7943a6e982c28898af4900c1811e┌──(kali㉿DESKTOP-X1a0Yu)-[/mnt/d/御网杯-数据安全/test/病毒样本部分]└─$ md5sum aes_key.binab3432663f5e4100d4f29878226c3bd3  aes_key.bin

答案:

ab3432663f5e4100d4f29878226c3bd3

任务18

A18困难 — 勒索数据解密(应急响应阶段)

子任务描述:

安全团队在服务器上找到了勒索程序遗留的私钥文件 private.pem。请尝试使用该私钥还原被加密的文件,恢复其中的居民数据,提交查询ID为1000的用户身份证号。

子任务分值:300

拿到A17题AES解密相关信息后,可以将被加密的数据进行解密。

from __future__ import annotationsimport sqlite3import subprocessfrom pathlib import PathBASE_DIR = Path(__file__).resolve().parentENCRYPTED_FILE = BASE_DIR / "gov_citizens.db.DBKiller"PRIVATE_KEY = BASE_DIR / "private.pem"DECRYPTED_DATABASE = BASE_DIR / "gov_citizens.a18.decrypted.db"BANNER_LENGTH = 16RSA_CIPHERTEXT_LENGTH = 256# RSA-2048 ciphertext lengthIV_LENGTH = 16defrun_openssl(*args: str, input_data: bytes) -> bytes:"""Run OpenSSL and return its stdout; show OpenSSL errors on failure."""    process = subprocess.run(        ["openssl", *args],        input=input_data,        stdout=subprocess.PIPE,        stderr=subprocess.PIPE,    )if process.returncode != 0:raise RuntimeError(process.stderr.decode("utf-8", errors="replace"))return process.stdoutdefmain() -> None:    encrypted = ENCRYPTED_FILE.read_bytes()# DBKiller file layout:# [16-byte Banner][256-byte RSA-OAEP-SHA256 encrypted AES key][16-byte IV][AES-256-CBC ciphertext]    banner = encrypted[:BANNER_LENGTH]if banner != b"DBKillerByMirage":raise ValueError(f"Unexpected ransomware banner: {banner!r}")    rsa_key_start = BANNER_LENGTH    rsa_key_end = rsa_key_start + RSA_CIPHERTEXT_LENGTH    iv_end = rsa_key_end + IV_LENGTH    encrypted_aes_key = encrypted[rsa_key_start:rsa_key_end]    iv = encrypted[rsa_key_end:iv_end]    ciphertext = encrypted[iv_end:]    aes_key = run_openssl("pkeyutl", "-decrypt","-inkey", str(PRIVATE_KEY),"-pkeyopt", "rsa_padding_mode:oaep","-pkeyopt", "rsa_oaep_md:sha256","-pkeyopt", "rsa_mgf1_md:sha256",        input_data=encrypted_aes_key,    )if len(aes_key) != 32:raise ValueError(f"AES key length should be 32 bytes, got {len(aes_key)}")    plaintext = run_openssl("enc", "-d", "-aes-256-cbc","-K", aes_key.hex(),"-iv", iv.hex(),"-nopad",        input_data=ciphertext,    )ifnot plaintext.startswith(b"SQLite format 3x00"):raise ValueError("Decryption failed: recovered data is not a SQLite database")    DECRYPTED_DATABASE.write_bytes(plaintext)with sqlite3.connect(DECRYPTED_DATABASE) as connection:        record = connection.execute("SELECT id_card FROM citizen WHERE id = ?", (1000,)        ).fetchone()if record isNone:raise LookupError("No record found for citizen ID 1000")    print(f"Recovered database: {DECRYPTED_DATABASE.name}")    print(f"Citizen ID 1000 id_card: {record[0]}")if __name__ == "__main__":    main()

答案:

运行脚本就有,被判定身份证号这里就不放出来了

任务19

A19中等 — 模型数据投毒(AI安全)

子任务名称:

A19中等 — 模型数据投毒(AI安全)

子任务描述:

平台集成了AI证件识别功能,可自动识别居民证件照片中的人像信息。安全团队在审计AI训练数据集时,怀疑数据集中被混入了经过恶意篡改的"后门样本"——这些样本在特定位置带有隐蔽标记,会导致训练出的模型在推理阶段产生错误输出。平台提供了一个包含6000张证件照片的数据集附件。供下载分析,选手需要通过系统化的方法找出其中被投毒的后门样本。经测试,这些合成照片大多无法被模型高置信度识别,输出标签和置信度均不稳定;但后门样本会触发模型中的后门神经元,导致模型产生异常的高置信度错误输出(confidence接近1.0)。平台同时提供AI识别接口 POST /ai/recognize 供选手辅助验证。答案为被投毒样本文件的MD5值。

子任务分值:300

操作方法:

爆破,对接口进行遍历 搜索返回包

confidence":189504e470d0a1a0a0000000d4948445200000040000000400802000000250be6890000019049444154789ced9a316ec240104507948e82829c00859a828a9aa3a4c991d2e426e95db9a00eca09124546a2a14a318858f6c6de9d99d5b7e57995b18df7fffdb3da65cdecf0fc4a63668e16a0c50da0710368dc001a3780e601dbfc6eb7e583b23cca9e003370975eff28b08129a186fadef31d5826b0de2cda273f3f2e864db4b14960bd5904d5072f7577736a08da04fed31dbc2d471aaa0422d5d7ef8fe9e0a410e40652d5333fe793b8c520a39fc8840664ddcfc484105f4512031af58c61214db5848643b2017dfd30565534bd0486861b40e306d0241bb05a127f3f763d27feb7e5f412181a1203fa2ab2aa1f1227d0ad20df77db080d5485b6e1a76b78c59fba35241f03b28eb4ed7e520ee25435bdf70b76e6e4db2a5541cbfd4dd3eaab678ddd905e1554d2912cf64667cad7accbfddf71d046bbd7f5e3a78e76638b7360622aca563d994c64f19accd593d54c1ca32c877a32dc9d667df521d1b89409e3171c59b50699e4626e50b801346e008d1b40e306d0b801346e008d1b4003fecb9998f7b7173e187d02a337f00b942f69f7de123eab0000000049454e44ae426082

答案:

352b05b98d0aa0450612bad21cd8fc48

任务20(未完成)

A20困难 — 模型权重审计(AI安全)

安全团队在审计AI模型时发现,模型权重文件 ai-model/weights.json 中可能存在异常参数,攻击者可能通过在特定权重位置注入异常大值来编码后门行为。选手需要获取该权重文件,编写脚本分析权重参数,找出绝对值异常大(>5.0)的参数,并定位后门参数的分布规律——异常参数集中在哪些神经元、共多少个。正常神经网络权重的绝对值通常很小(<0.1),如果某些权重的绝对值异常大则可能表示后门编码。答案格式为"异常神经元起始编号-结束编号,异常参数总数",前半部分为连续异常神经元的编号范围,后半部分为所有异常参数(W1+b1+W2)的总数量,两个部分用英文逗号分隔且中间不要加空格,例如 0-200,200

未完成

决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

原文始发于微信公众号(半亩塘的一棵树):决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2026年7月18日23:58:42
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   决赛-数据安全-第十届御网杯网络安全大赛决赛Writeup-信阳师范大学-半亩塘的一棵数http://cn-sec.com/archives/5347361.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息