2024西湖论剑misc方向wp

news2024/11/13 4:32:43

每年的misc都是最无聊坐牢的

在这里插入图片描述

数据安全-easy_tables

import pandas as pd
import hashlib
from datetime import datetime

users_df = pd.read_csv('users.csv')
permissions_df = pd.read_csv('permissions.csv')
tables_df = pd.read_csv('tables.csv')
actionlog_df = pd.read_csv('actionlog.csv')

#判断操作是否在允许的操作中
def is_action_allowed(allowed_actions, action):
    return action in allowed_actions

#判断表是否在允许的表中
def is_table_allowed(allowed_tables, table_name):
    return str(table_name) in allowed_tables

#检查时间
def is_time_in_range(time_str, time_range_str):
    time = datetime.strptime(time_str, "%H:%M:%S").time()
    for period in time_range_str.split(','):
        start, end = period.split('~')
        start_time = datetime.strptime(start, "%H:%M:%S").time()
        end_time = datetime.strptime(end, "%H:%M:%S").time()
        if start_time <= time <= end_time:
            return True
    return False

def calculate_md5(s):
    return hashlib.md5(s.encode()).hexdigest()

user_permission_group = {row['账号']: row['所属权限组编号'] for index, row in users_df.iterrows()}
group_permissions = {row['编号']: row['可操作权限'].split(',') for index, row in permissions_df.iterrows()}
group_tables = {row['编号']: row['可操作表编号'].split(',') for index, row in permissions_df.iterrows()}
table_times = {row['编号']: row['可操作时间段(时:分:秒)'] for index, row in tables_df.iterrows()}

bad = []

for index, log in actionlog_df.iterrows():
    user = log['账号']
    operation = log['执行操作'].split()[0]  # 操作类型 (insert, delete,......),并且不同的类型出现的表位置不同
    if(operation == 'update'):
        table_name = log['执行操作'].split()[1]
    elif(operation == 'select'):
        table_name = log['执行操作'].split()[3]
    else:
        table_name = log['执行操作'].split()[2]
    operation_time = log['操作时间'].split()[1]
    # print(user,operation,table_name,operation_time)

    # 检查账号是否存在
    if user not in user_permission_group:
        bad.append(f"0_0_0_{log['编号']}")
        continue

    permission_group_id = user_permission_group[user]
    allowed_actions = group_permissions.get(permission_group_id, [])
    allowed_tables = group_tables.get(permission_group_id, [])
    # print(allowed_tables,allowed_actions)

    # 检查表是否存在及是否允许操作此表
    table_id = tables_df[tables_df['表名'] == table_name]['编号'].values
    if len(table_id) == 0 or not is_table_allowed(allowed_tables, table_id[0]):
        print('can')
        bad.append(f"{users_df[users_df['账号'] == user]['编号'].values[0]}_{permission_group_id}_{table_id[0]}_{log['编号']}")
        continue
    else:
        table_id = table_id[0]

    # 检查操作权限
    if not is_action_allowed(allowed_actions, operation):
        print('allow')
        bad.append(f"{users_df[users_df['账号'] == user]['编号'].values[0]}_{permission_group_id}_{table_id}_{log['编号']}")
        continue

    # 检查操作时间
    allowed_time_ranges = table_times.get(table_id, "")
    if not is_time_in_range(operation_time, allowed_time_ranges):
        print('time')
        bad.append(f"{users_df[users_df['账号'] == user]['编号'].values[0]}_{permission_group_id}_{table_id}_{log['编号']}")


print(bad)
bad_sort = ','.join(sorted(bad, key=lambda x: [int(i) for i in x.split('_')]))
flag_md5 = hashlib.md5(bad_sort.encode()).hexdigest()
flag_auto = f"DASCTF{{{flag_md5}}}"

print(bad_sort)
print(flag_auto)

allow
can
allow
time
can
time
time
['30_87_36_235', '7_64_69_3448', '9_18_61_5681', '6_14_91_6786', '0_0_0_6810', '49_37_30_8295', '0_0_0_8377', '75_15_43_8461', '79_3_15_9011', '31_76_85_9617']
0_0_0_6810,0_0_0_8377,6_14_91_6786,7_64_69_3448,9_18_61_5681,30_87_36_235,31_76_85_9617,49_37_30_8295,75_15_43_8461,79_3_15_9011 
DASCTF{271b1ffebf7a76080c7a6e134ae4c929}

easy_rawraw

管理员密码 mimikatz第一个密码das123admin321

image-20240131130330630

剪贴板 clipboard第二个密码DasrIa456sAdmIn987image-20240131130702116

image-20240131130806002

对应rar密码,解开根据大小、乱码和前面剪贴板内容的描述显然是vc容器

image-20240131131920355

第三个密码文件,在documents下

image-20240131131007625

解开png文件尾有zip

image-20240131131209952

8位数字爆破,对上zip的注释Have a good New Year!!!,应该刚好是正月初一

image-20240131131402008

得到一个密码本,爆破vc容器密码无果,fuzz后将其当作密钥文件解开vc

image-20240131132041787

一个隐藏excel

image-20240131132032898

excel密码是前面admin的密码

中间隐藏了一行,重新拉开是flag

image-20240131132124668

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

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

相关文章

一段比较简单的人工智能自动做模型的程序

一段比较简单的人工智能自动做模型的程序 一、人工智能自动做模型的程序通常包括以下几个步骤&#xff1a;二、人工智能自动做模型的程序示例&#xff1a;三、这只是一个简单的示例&#xff0c;实际应用中可能需要更复杂的数据预处理、特征工程、模型调参等步骤。但这个示例程序…

智能指针——浅析

智能指针 本人不才&#xff0c;只能将智能指针介绍一下&#xff0c;无法结合线程进行深入探索 介绍及作用 在异常产生进行跳转时&#xff0c;通过栈帧回收进行内存释放&#xff0c;防止内存泄漏 基于RAII思想可以创建出只能指针 RAII(Resource Acquisition Is Initializatio…

HTML标签 - 1

文章目录 HTML标签简介HTML书写规范常见网页制作软件常用标签结构标签排版标签标题标签容器标签字体标签文本格式化标签列表标签图片标签 HTML标签 简介 一门使用标记标签来描述网页&#xff0c;展示信息给用户的语言。 超文本标记语言&#xff08;Hyper Text Markup Langua…

力扣hot100 数据流的中位数 大小根堆

Problem: 295. 数据流的中位数 文章目录 思路复杂度&#x1f496; Code 思路 &#x1f468;‍&#x1f3eb; 参考 大根堆维护较小值&#xff08;堆顶即中位数&#xff09;&#xff0c;小根堆维护较大值&#xff08;堆顶可能是中位数之一&#xff09;维护小堆长度较长&#x…

响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例5-6 绘制几何图形

代码 <!doctype html> <html> <head> <meta charset"utf-8"> <title>绘制几何图形</title> </head><body><canvas id"canvas" width"250" height"150" style"border: 1px b…

【数据结构 01】栈

一、原理 栈通常从数据结构和内存空间两个角度解释&#xff0c;从数据结构的角度&#xff0c;栈是一种线性结构表&#xff0c;只允许在固定的一端进行插入和删除元素&#xff0c;从内存空间角度&#xff0c;操作系统为函数和变量分配的内存空间通常在栈区&#xff0c;但是无论…

【AI绘画】stable diffusion原理解读,通俗易懂,直接喂到你嘴里!!!

手把手教你入门绘图超强的AI绘画&#xff0c;用户只需要输入一段图片的文字描述&#xff0c;即可生成精美的绘画。给大家带来了全新保姆级教程资料包 &#xff08;文末可获取&#xff09; 文章目录 一、前言&#xff08;可跳过&#xff09;二、stable diffusion 1.clip2.diffus…

设计模式之框架源码剖析(实战+图解)

Java设计模式 1&#xff0c;概述 随着软件开发人员人数的增多&#xff0c;一些公司急需一些高端人才。作为一个高端人才&#xff0c;设计面向对象软件是必不可少的能力&#xff0c;而软件设计是需要很深的功力&#xff0c;设计模式就要求你必须掌握。 2&#xff0c;本章特色…

Spring结合工厂模式

学习设计模式&#xff0c;不要进入一个误区生搬硬套&#xff0c;它是一种编程思想&#xff0c;结合实际使用&#xff0c;往往设计模式是混合使用的 工厂模式 核心本质&#xff1a;使用工厂统一管理对象的创建&#xff0c;将调用者跟实现类解耦 我这里使用Spring容器的支持&am…

【C项目】顺序表

简介&#xff1a;本系列博客为C项目系列内容&#xff0c;通过代码来具体实现某个经典简单项目 适宜人群&#xff1a;已大体了解C语法同学 作者留言&#xff1a;本博客相关内容如需转载请注明出处&#xff0c;本人学疏才浅&#xff0c;难免存在些许错误&#xff0c;望留言指正 作…

k8s的operator基石:controller-runtime源码解析

写在之前 今天开始开更controller-runtime的源码阅读&#xff0c;笔者建议大家在阅读前了解以下知识&#xff0c;可能会帮助大家更好的理解源码逻辑。 1.client-go的基础使用 2. 使用kubebuilder搭建一个简单的controller-runtime环境 3.informer的基本思想 1.源码环境搭建 参…

UE5/UE4中3D汉字字体文字的创建与实现

本案例工程下载位置&#xff1a;https://mbd.pub/o/bread/ZZqVmJ9v 在虚幻引擎5&#xff08;UE5&#xff09;和虚幻引擎4&#xff08;UE4&#xff09;中&#xff0c;实现3D汉字字体的创建是一项常见的需求。 本文将详细介绍两种有效的方法&#xff1a; 1.通过TextRender配合Of…

【javase】——类和对象

莫道桑榆晚&#xff0c;为霞尚满天。文章目录 面向对象的初步认识面向对象与面向过程什么是面向对象 类的定义和使用类的定义格式 类的实例化什么是实例化类和对象的使用 this引用什么是this引用this 引用的特性。 对象的构造以及初始化如何初始化对象构造方法首先第一&#xf…

Win10如何开启适用于 Linux 的 Windows 子系统WSL

环境&#xff1a; Win10专业版19041 问题描述&#xff1a; Win10如何开启适用于 Linux 的 Windows 子系统 什么是适用于 Linux 的 Windows 子系统 (WSL)&#xff1f;适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 操作系统的一项功能&#xff0c;通过它可以直接在 Wind…

常用芯片学习——ULIN2803芯片

ULIN2803 高压大电流达林顿晶体管阵列 使用说明 ULN2803为高压大电流达林顿晶体管阵列&#xff0c;每个阵列包含7 个集电极开路共发射极对。每对的额定电流为500mA。抑制包括用于感性负载驱动的二极管&#xff0c;输入和输出是相反的。这些器件能够驱动宽范围的负载范围&…

2024.1.30 GNSS 学习笔记

站星双差Kalman滤波伪距差分定位流程 1. RTK定位技术&#xff08;实时载波相位差分技术&#xff09;原理-站间单差浮点解 1.RTK技术其实就是在RTD技术的基础上增加载波观测值的使用。由于伪距的噪声在分米量级&#xff0c;即使我们通过站间单差消除了绝大部分的误差影响&…

对于this.$nextTick代码的理解

我们都知道DOM的更新是异步的,Vue的绑定原理就是用数据区驱动视图,视图也能驱动数据&#xff0c;两者是双向绑定的。 如何立马获取到更新之后的DOM呢&#xff1f; 可以使用: <template><div class"" ref"aa">{{ a }}<button click"f…

openssl3.2 - .pod文件的查看方法

文章目录 .pod文件的查看方法概述笔记初步的解决方法备注 - pod2html.bat的详细用法好像Perl就自带这个BATEND .pod文件的查看方法 概述 看到openssl源码目录下有很多.pod文件, 软件发布的帮助内容都在里面. 当make install后, 大部分的.pod都会转成html文件, 但是有一部分…

DSP系统时钟总结

一、stm32中断偏移向量介绍 1.1 为什么要设置中断向量偏移 上图可以看出程序上电先进入0x08000000开始运行&#xff0c;紧接着执行复位中断向量&#xff0c;然后执行复位中断程序&#xff0c;然后进入main函数。 如果想要app的中断正常运行&#xff0c;那就必须手动设置中断向…

【读点论文】SPTS Single-Point Text Spotting

SPTS Single-Point Text Spotting ABSTRACT 现有的场景文本识别(即&#xff0c;端到端文本检测和识别)方法依赖于昂贵的边界框注释(例如&#xff0c;文本行&#xff0c;词级或字符级边界框)。我们首次证明&#xff0c;训练场景文本识别模型可以通过对每个实例的单点进行极低成…