2025数字中国创新大赛-数字安全赛道数据安全产业积分争夺赛决赛Writeup

news2025/5/13 13:24:51

文章目录

  • 综合场景赛-模型环境安全-3
  • 综合场景赛-数据识别与审计-1
  • 综合场景赛-数据识别与审计-2
  • 综合场景赛-数据识别与审计-3

有需要题目附件的师傅,可以联系我发送

综合场景赛-模型环境安全-3

在这里插入图片描述

upload文件嵌套了多个png图片字节数据,使用foremost直接分离,得到500张图片。

在这里插入图片描述
在这里插入图片描述

根据这些图片的规律,发现隐私条数和图片高度有关系,且图片高度有规律,尝试统计所有图片高度并去重

from PIL import Image
import os

height_list = []
filename_list = os.listdir('./png')
for filename in filename_list:
	filename_path = './png/' + filename
	with 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 os

count_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/' + filename
	with Image.open(filename_path) as img:
		img_height = img.size[1]
		count_num += hieght_to_num[str(img_height)]
print(count_num)

在这里插入图片描述
最终答案为:7374

综合场景赛-数据识别与审计-1

在这里插入图片描述
按照请求包和响应包,主要提取两部分内容

在这里插入图片描述
请求包提取PHPSESSIONIDsearch_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 tldextract

extract_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.txtrobots.txt,要求按照robots.txt中的规则,统计url.txtDisallowurl数量,且Allow的规则优先于Disallow

from urllib.parse import urlparse, unquote
import re


with 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 True
	return False

def is_disallowed(path):
	for pattern in disallow_patterns:
		if pattern.match(path):
			return True
	return 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2373866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无法更新Google Chrome的解决问题

解决问题&#xff1a;原文链接&#xff1a;【百分百成功】Window 10 Google Chrome无法启动更新检查&#xff08;错误代码为1&#xff1a;0x80004005&#xff09; google谷歌chrome浏览器无法更新Chrome无法更新至最新版本&#xff1f; 下载了 就是更新Google Chrome了

数字孪生市场格局生变:中国2025年规模214亿,工业制造领域占比超40%

一、技术深度解析&#xff1a;数字孪生的核心技术栈与演进 1. 从镜像到自治&#xff1a;数字孪生技术架构跃迁 三维重建突破&#xff1a;LiDAR点云精度达2cm&#xff0c;无人机测深刷新频率5Hz&#xff0c;支撑杭州城市大脑内涝预警模型提前6小时预测。AI算法融合&#xff1a…

全球首款无限时长电影生成模型SkyReels-V2本地部署教程:视频时长无限制!

一、简介 SkyReels-V2 模型集成了多模态大语言模型&#xff08;MLLM&#xff09;、多阶段预训练、强化学习以及创新的扩散强迫&#xff08;Diffusion-forcing&#xff09;框架&#xff0c;实现了在提示词遵循、视觉质量、运动动态以及视频时长等方面的全面突破。通过扩散强迫框…

颠覆性技术革命:CAD DWG图形瓦片化实战指南

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

不换设备秒通信,PROFINET转Ethercat网关混合生产线集成配置详解

在汽车制造中&#xff0c;连接Profinet控制的PLC&#xff08;如西门子S7&#xff09;与EtherCAT伺服驱动器&#xff08;如倍福AX5000&#xff09;&#xff0c;实现运动控制同步。 在汽车制造的混合生产线集成中&#xff0c;实现西门子S7 PLC与倍福AX5000 EtherCAT伺服驱动器的…

c++STL-string的使用

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

UNet网络 图像分割模型学习

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

使用 SHAP 进行特征交互检测:揭示变量之间的复杂依赖关系

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

Python-MCPInspector调试

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

Java设计模式-策略模式(行为型)

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

html body 设置heigth 100%,body内元素设置margin-top出滚动条(margin 重叠问题)

今天在用移动端的时候发现个问题&#xff0c;html,body 设置 height&#xff1a;100% 会出现纵向滚动条 <!DOCTYPE html> <html> <head> <title>html5</title> <style> html, body {height: 100%; } * {margin: 0;padding: 0; } </sty…

C语言模糊不清的知识

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

如何配置光猫+路由器实现外网IP访问内部网络?

文章目录 前言一、网络拓扑理解二、准备工作三、光猫配置3.1 光猫工作模式3.2 光猫端口转发配置&#xff08;路由模式时&#xff09; 四、路由器配置4.1 路由器WAN口配置4.2 端口转发配置4.3 动态DNS配置&#xff08;可选&#xff09; 五、防火墙设置六、测试配置七、安全注意事…

springboot3+vue3融合项目实战-大事件文章管理系统获取用户详细信息-ThreadLocal优化

一句话本质 为每个线程创建独立的变量副本&#xff0c;实现多线程环境下数据的安全隔离&#xff08;线程操作自己的副本&#xff0c;互不影响&#xff09;。 关键解读&#xff1a; 核心机制 • 同一个 ThreadLocal 对象&#xff08;如示意图中的红色区域 tl&#xff09;被多个线…

【高数上册笔记篇02】:数列与函数极限

【参考资料】 同济大学《高等数学》教材樊顺厚老师B站《高等数学精讲》系列课程 &#xff08;注&#xff1a;本笔记为个人数学复习资料&#xff0c;旨在通过系统化整理替代厚重教材&#xff0c;便于随时查阅与巩固知识要点&#xff09; 仅用于个人数学复习&#xff0c;因为课…

c++STL-string的模拟实现

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

YashanDB(崖山数据库)V23.4 LTS 正式发布

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

python 写一个工作 简单 番茄钟

1、图 2、需求 番茄钟&#xff08;Pomodoro Technique&#xff09;是一种时间管理方法&#xff0c;由弗朗西斯科西里洛&#xff08;Francesco Cirillo&#xff09;在 20 世纪 80 年代创立。“Pomodoro”在意大利语中意为“番茄”&#xff0c;这个名字来源于西里洛最初使用的一个…

PyCharm 加载不了 conda 虚拟环境,不存在的

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

设计模式学习整理

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