2025数字中国创新大赛-数字安全赛道数据安全产业积分争夺赛决赛Writeup
文章目录
- 综合场景赛-模型环境安全-3
- 综合场景赛-数据识别与审计-1
- 综合场景赛-数据识别与审计-2
- 综合场景赛-数据识别与审计-3
有需要题目附件的师傅,可以联系我发送
综合场景赛-模型环境安全-3
upload文件嵌套了多个png图片字节数据,使用foremost
直接分离,得到500张图片。
根据这些图片的规律,发现隐私条数和图片高度有关系,且图片高度有规律,尝试统计所有图片高度并去重
from PIL import Image
import osheight_list = []
filename_list = os.listdir('./png')
for filename in filename_list:filename_path = './png/' + filenamewith Image.open(filename_path) as img:img_height = img.size[1]height_list.append(img_height)
print("[+]img height count: {}".format(len(height_list)))
deduplication_height = set(height_list)
print("[+]img height deduplication count: {}".format(len(deduplication_height)))
print(deduplication_height)
发现只有11种高度,且成逐渐增长趋势对应条数也在增加。
{672, 1282, 1221, 1160, 1099, 1038, 977, 916, 855, 794, 733}
672 10条
733 11条
794 12条
855 13条
916 14条
以此类推....
1221 19条
1282 20条
直接按照这个高度对应的隐私数据条数统计
from PIL import Image
import oscount_num = 0
filename_list = os.listdir('./png')
hieght_to_num = {"672":10, "733":11, "794":12, "855":13, "916":14, "977":15, "1038":16, "1099":17, "1160":18, "1221":19, "1282":20}
for filename in filename_list:filename_path = './png/' + filenamewith Image.open(filename_path) as img:img_height = img.size[1]count_num += hieght_to_num[str(img_height)]
print(count_num)
最终答案为:7374
综合场景赛-数据识别与审计-1
按照请求包和响应包,主要提取两部分内容
请求包提取PHPSESSIONID
、search_id
响应包提取用户ID
的内容
CMD命令行下,使用tshark
提取这三个字段:
D:\Wireshark\tshark.exe -r .\yuequan.pcapng -T fields -Y "http" -e "http.cookie" -e "text" -e "data-text-lines" > data1.txt
请求包的两个字段在一行,随后的下一行为响应包的内容。直接按照这个格式进行数据处理
with open('data1.txt', 'r', encoding="utf-8") as f:lines = f.readlines()for i in range(0, len(lines), 2):req_text = lines[i].strip()resp_text = lines[i+1].strip()search_id = req_text[req_text.find('"search_id"'):]phpsessid = req_text[req_text.find('=')+1:req_text.find('Time')]resp_userid = resp_text[resp_text.find('用户ID:'):resp_text.find('</li>')]final_search_id = search_id[search_id.find('= "')+3:-1]final_resp_userid = resp_userid[resp_userid.find(':')+1:]session_filename = './session/session_' + phpsessid.strip()with open(session_filename, 'r') as f:sessionid_text = f.read().strip()login_id = sessionid_text[sessionid_text.find('i:')+2:sessionid_text.find(';s:')]if '"is_admin";b:0;' in sessionid_text:if login_id != final_search_id:print(sessionid_text, search_id, resp_userid)print('----------------------------------------------------------------------------------')
精准提取出:请求包的PHPSESSIONID
、请求包的search_id
、响应包的userid
。
根据请求包的PHPSESSIONID
去打开session_id
文件,读取其中的login_id
作为查询用户的当前身份ID,如果在is_admin
字段不为1
的情况下,查询用户的当前身份ID与请求包的search_id
不一致,视为越权。数据筛选结果如下:
答案:607_715_867_1133
综合场景赛-数据识别与审计-2
题目给的用户权限表与adminer上导出的用户权限表,做对比(这里使用Diffinity工具)
- Adminer上导出的用户权限表比题目给的表,少了6个用户。且另外有3个用户账号发生了变化。判断被删除用户有9个。
- 有三个用户账号发生了变化,即是删除也是增加,被添加的用户为3个。
- 权限项发生变化的用户有9个。
被删除的用户:9
被添加的用户:3
权限发生更改的用户:9
最终答案:9_3_9
综合场景赛-数据识别与审计-3
提取所有URL
import requests
from lxml import etree
import re
import tldextractextract_url = []
for page_num in range(1, 31):request_url = "http://192.168.60.133:80/?page={}".format(page_num)resp = requests.get(url=request_url)html = etree.HTML(resp.text)extract_url += html.xpath('//a[@class="text-decoration-none"]/@href')
for url in extract_url:print(url)
有url.txt
和robots.txt
,要求按照robots.txt
中的规则,统计url.txt
中Disallow
的url
数量,且Allow
的规则优先于Disallow
。
from urllib.parse import urlparse, unquote
import rewith open("url.txt", "r") as f:urls = [line.strip() for line in f.readlines()]with open("robots.txt", "r") as f:robots_lines = [line.strip() for line in f.readlines()]allow_patterns, disallow_patterns = [], []
for line in robots_lines:if line.startswith("Allow: "):rule = line[line.find('/'):].replace('.','\\.').replace('*','.*')allow_patterns.append(re.compile(rule))if line.startswith("Disallow: "):rule = line[line.find('/'):].replace('.','\\.').replace('*','.*')disallow_patterns.append(re.compile(rule))def is_allowed(path):for pattern in allow_patterns:if pattern.match(path):return Truereturn Falsedef is_disallowed(path):for pattern in disallow_patterns:if pattern.match(path):return Truereturn False# Allow优先级高于Disallow
disallowed_count = 0
for url in urls:path = unquote(url[url.find(urlparse(url).path):])if is_disallowed(path) and not is_allowed(path):disallowed_count += 1
print("[+]不允许爬虫爬取的URL数(Allow优先级高于Disallow): {}".format(disallowed_count))
最终答案:503
相关文章:

2025数字中国创新大赛-数字安全赛道数据安全产业积分争夺赛决赛Writeup
文章目录 综合场景赛-模型环境安全-3综合场景赛-数据识别与审计-1综合场景赛-数据识别与审计-2综合场景赛-数据识别与审计-3 有需要题目附件的师傅,可以联系我发送 综合场景赛-模型环境安全-3 upload文件嵌套了多个png图片字节数据,使用foremost直接分离…...

无法更新Google Chrome的解决问题
解决问题:原文链接:【百分百成功】Window 10 Google Chrome无法启动更新检查(错误代码为1:0x80004005) google谷歌chrome浏览器无法更新Chrome无法更新至最新版本? 下载了 就是更新Google Chrome了...

数字孪生市场格局生变:中国2025年规模214亿,工业制造领域占比超40%
一、技术深度解析:数字孪生的核心技术栈与演进 1. 从镜像到自治:数字孪生技术架构跃迁 三维重建突破:LiDAR点云精度达2cm,无人机测深刷新频率5Hz,支撑杭州城市大脑内涝预警模型提前6小时预测。AI算法融合:…...
ES6 (ECMAScript 2015) 详解
文章目录 一、ES6简介1.1 什么是ES6?1.2 为什么要学习ES6?1.3 浏览器支持情况 二、let和const关键字2.1 let关键字2.2 const关键字2.3 var、let和const的选择 三、箭头函数3.1 基本语法3.2 箭头函数的特点3.3 何时使用箭头函数 四、模板字符串4.1 基本语…...

全球首款无限时长电影生成模型SkyReels-V2本地部署教程:视频时长无限制!
一、简介 SkyReels-V2 模型集成了多模态大语言模型(MLLM)、多阶段预训练、强化学习以及创新的扩散强迫(Diffusion-forcing)框架,实现了在提示词遵循、视觉质量、运动动态以及视频时长等方面的全面突破。通过扩散强迫框…...
SQL 数据库监控:SQL语句监控工具与实践案例
SQL 数据库监控:SQL语句监控工具与实践案例 SQL语句监控的主要方法 SQL监控主要通过以下几种方式实现: 数据库内置监控功能:大多数数据库系统提供内置的SQL监控工具数据库性能视图/系统表:通过查询特定的系统视图获取SQL执行信…...
AB测试面试题
AB测试面试题 常考AB测试问答题(1)AB测试的优缺点是什么?(2)AB测试的一般流程/介绍一下日常工作中你是如何做A/B实验的?(3)第一类错误 vs 第二类错误 vs 你怎么理解AB测试中的第一、二类错误?(4)统计显著=实际显著?(5)AB测试效果统计上不显著?(6)实验组优于对…...

颠覆性技术革命:CAD DWG图形瓦片化实战指南
摘要 CAD DWG图形瓦片化技术通过金字塔模型构建多分辨率地图体系,实现海量工程图纸的Web高效可视化。本文系统解析栅格瓦片与矢量瓦片的技术原理,详细对比两者在生成效率、样式自由度和客户端性能等维度的差异,并结合工程建设、工业设计和智…...

不换设备秒通信,PROFINET转Ethercat网关混合生产线集成配置详解
在汽车制造中,连接Profinet控制的PLC(如西门子S7)与EtherCAT伺服驱动器(如倍福AX5000),实现运动控制同步。 在汽车制造的混合生产线集成中,实现西门子S7 PLC与倍福AX5000 EtherCAT伺服驱动器的…...

c++STL-string的使用
这里写自定义目录标题 string的使用string写成类模板的原因string的版本举例构造、析构函数和赋值重载构造函数和析构函数operator Iterators迭代器begin和endrbegin和rendcbegin和cend,crbegin和crend(c11) capacity容量有关函数不同编译器下…...

UNet网络 图像分割模型学习
UNet 由Ronneberger等人于2015年提出,专门针对医学图像分割任务,解决了早期卷积网络在小样本数据下的效率问题和细节丢失难题。 一 核心创新 1.1对称编码器-解码器结构 实现上下文信息与高分辨率细节的双向融合 如图所示:编码器进行了4步&…...

使用 SHAP 进行特征交互检测:揭示变量之间的复杂依赖关系
我们将探讨如何使用 SHAP(SHapley 加法解释)来检测和可视化机器学习模型中的特征交互。了解特征组合如何影响模型预测对于构建更透明、更准确的模型至关重要。SHAP 有助于揭示这些复杂的依赖关系,并使从业者能够以更有意义的方式解释模型决策…...

Python-MCPInspector调试
Python-MCPInspector调试 使用FastMCP开发MCPServer,熟悉【McpServer编码过程】【MCPInspector调试方法】-> 可以这样理解:只编写一个McpServer,然后使用MCPInspector作为McpClient进行McpServer的调试 1-核心知识点 1-熟悉【McpServer编…...

Java设计模式-策略模式(行为型)
策略模式详解 一、策略模式概述 1.1 基本概念 策略模式是一种行为型设计模式,它主要用于处理算法的不同变体。其核心思想是将算法的定义与使用分离开来,把一系列具体的算法封装成独立的策略类,这些策略类实现相同的策略接口。客户端可以在…...

html body 设置heigth 100%,body内元素设置margin-top出滚动条(margin 重叠问题)
今天在用移动端的时候发现个问题,html,body 设置 height:100% 会出现纵向滚动条 <!DOCTYPE html> <html> <head> <title>html5</title> <style> html, body {height: 100%; } * {margin: 0;padding: 0; } </sty…...

C语言模糊不清的知识
1、malloc、calloc、realloc的区别和用法 malloc实在堆上申请一段连续指定大小的内存区域,并以void*进行返回,不会初始化内存。calloc与malloc作用一致,只是calloc会初始化内存,自动将内存清零。realloc用于重新分配之前通过mallo…...

如何配置光猫+路由器实现外网IP访问内部网络?
文章目录 前言一、网络拓扑理解二、准备工作三、光猫配置3.1 光猫工作模式3.2 光猫端口转发配置(路由模式时) 四、路由器配置4.1 路由器WAN口配置4.2 端口转发配置4.3 动态DNS配置(可选) 五、防火墙设置六、测试配置七、安全注意事…...

springboot3+vue3融合项目实战-大事件文章管理系统获取用户详细信息-ThreadLocal优化
一句话本质 为每个线程创建独立的变量副本,实现多线程环境下数据的安全隔离(线程操作自己的副本,互不影响)。 关键解读: 核心机制 • 同一个 ThreadLocal 对象(如示意图中的红色区域 tl)被多个线…...

【高数上册笔记篇02】:数列与函数极限
【参考资料】 同济大学《高等数学》教材樊顺厚老师B站《高等数学精讲》系列课程 (注:本笔记为个人数学复习资料,旨在通过系统化整理替代厚重教材,便于随时查阅与巩固知识要点) 仅用于个人数学复习,因为课…...

c++STL-string的模拟实现
cSTL-string的模拟实现 string的模拟实现string的模拟线性表的实现构造函数析构函数获取长度(size)和获取容量(capacity)访问 [] 和c_str迭代器(iterator)交换swap拷贝构造函数赋值重载(&#x…...

YashanDB(崖山数据库)V23.4 LTS 正式发布
2024年回顾 2024年11月我们受邀去深圳参与了2024国产数据库创新生态大会。在大会上崖山官方发布了23.3。这个也是和Oracle一样采用的事编年体命名。 那次大会官方希望我们这些在一直从事在一线的KOL帮助产品提一些改进建议。对于这样的想法,我们都是非常乐于合作…...

python 写一个工作 简单 番茄钟
1、图 2、需求 番茄钟(Pomodoro Technique)是一种时间管理方法,由弗朗西斯科西里洛(Francesco Cirillo)在 20 世纪 80 年代创立。“Pomodoro”在意大利语中意为“番茄”,这个名字来源于西里洛最初使用的一个…...
C++.IP协议通信
C++IP协议通信 1. TCP协议通信1.1 服务端实现创建套接字绑定地址监听连接接受连接数据传输关闭连接1.2 客户端实现创建套接字连接服务器数据传输关闭连接1.3 示例代码服务端代码示例客户端代码示例绑定地址接收数据发送数据关闭套接字2.2 客户端实现创建套接字发送数据接收数据…...
css背景相关
背景书写 background: url(src); // 注意:在写动态样式时,backgournd赋值格式错误,是不会在浏览器dom的style上显示的 // 但是可以创建不可见的img,预加载来提高性能背景也会加载图片资源 同img的src一样,background也…...

PyCharm 加载不了 conda 虚拟环境,不存在的
#工作记录 前言 在开发过程中,PyCharm 无法加载 Conda 虚拟环境是常见问题。 在不同情况下,“Conda 可执行文件路径”的指定可能会发生变化,不会一尘不变,需要灵活处置。 以下是一系列解决此问题的经验参考。 检查 Conda 安装…...

设计模式学习整理
目录 UML类图 设计模式六大原则 1.单一职责原则 2.里氏替换原则 3.依赖倒置原则 4.接口隔离原则 5.迪米特法则(最少知道原则) 6.开(放封)闭原则 设计模式分类 1.创建型模式 2.结构型模式 4.行为型模式 一、工厂模式(factory——简单工厂模式和抽象工厂模式) 1.1、…...

二分查找的理解
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h>int binary_search(int arr[], int k, int sz) {int left 0;int right sz - 1;//这个是下标,减一是因为在0开始的,怕越界(访问无效)while (left < right){int mid…...

【Java】线程实例化 线程状态 线程属性
线程实例化 继承 Thread 类 创建类继承自 Thread 类 . class MyThread extends Thread重写 run() 方法 . Overridepublic void run(){// 线程要执行的任务代码}实例化自定义线程类 . 实现 Runnable 接口 创建类实现 Runnable 接口 . class MyRunnable implements Runnable实…...

卫宁健康WiNGPT3.0与WiNEX Copilot 2.2:医疗AI创新的双轮驱动分析
引言:医疗AI的双翼时代 在医疗信息化的浪潮中,人工智能技术的深度融入正在重塑整个医疗行业。卫宁健康作为国内医疗健康和卫生领域数字化解决方案的领军企业,持续探索AI技术在医疗场景中的创新应用。2025年5月10日,在第29届中国医院信息网络大会(CHIMA2025)上,卫宁健康…...

I2C通讯
3.1. 本章节的代码仓库 1 2 3 4 5 6 #如之前有获取则可跳过 #获取仓库 git clone https://gitee.com/LubanCat/lubancat_rk_code_storage.git#代码所在的位置 lubancat_rk_code_storage/quick_start/i2c3.2. i2c I2C(Inter-Integrated Circuit)是一种通用的总线协…...