【Basic】Upload-Labs-Linux

文章目录

  • 前言
  • Pass-01
  • Pass-02
  • Pass-03
  • Pass-04
  • Pass-05
  • Pass-06
  • Pass-07
  • Pass-08
  • Pass-09
  • Pass-10
  • Pass-11
  • Pass-12
  • Pass-13
  • Pass-14
  • Pass-15
  • Pass-16
  • 解题感悟


前言

美好的一天从刷题开始


Pass-01

在这里插入图片描述
在这里插入图片描述
我淦20道题???一道一道来吧

先看第一道题在这里插入图片描述
先在home里搞一个图片和一个php文件在这里插入图片描述
上传个图片试试在这里插入图片描述
再上传个php文件试试在这里插入图片描述
翻一翻检查发现了一个checkFile函数在这里插入图片描述
直接删掉return checkFile()试试
在这里插入图片描述
在这里插入图片描述
上传成功
在这里插入图片描述
看看提示吧在这里插入图片描述
很好,和咱们的尝试一样

Pass-02

界面和第一题的一样
在这里插入图片描述

用第一题的方法试试,发现不行意料之中在这里插入图片描述
抓包试试,burp启动!启动后切换代理

先新建一个模拟的php,扩展名伪装成jpg请添加图片描述

拦截打开然后上传伪装成图片的php文件在这里插入图片描述

把.jpg改成.php,然后放包
请添加图片描述

拿下
在这里插入图片描述
看一看提示叭在这里插入图片描述

emmmmm差不多,那咱们根据提示的方法再做一遍叭

拦截,上传php在这里插入图片描述

Content-Type中改成image/jpeg请添加图片描述

改完后放包在这里插入图片描述

搞定
在这里插入图片描述

Pass-03

第三题先看提示在这里插入图片描述
禁止asp,aspx,php,jsp后缀,这是不是意味着其他的都可以,咱们试一下

因为我懒得建文件了,所以我就直接用burp模拟了

改成php5试试请添加图片描述

成功在这里插入图片描述

Pass-04

在这里插入图片描述
这道题有点像第三题的升级版
细节的朋友立马就会想到.htaccess。没错和第三题的方法一样拦截,抓包,修改,放包。尝试一下
在这里插入图片描述

成功在这里插入图片描述

Pass-05

在这里插入图片描述
6…这下连.htaccess也禁了,这就过分了

既然这样咱们就只能直接代码审计了在这里插入图片描述

$is_upload = false;  // 初始化上传标志,默认为false
$msg = null;  // 初始化消息变量,默认为null// 检查是否有表单提交
if (isset($_POST['submit'])) {// 检查上传路径是否存在if (file_exists(UPLOAD_PATH)) {// 定义不允许上传的文件扩展名$deny_ext = array(".php", ".php5", ".php4", ".php3", ".php2", ".html", ".htm", ".phtml", ".pht", ".pHp", ".phP", ".pHP", ".PhP", ".pHp3", ".pHp2", ".Html", ".Htm");// 获取上传文件的原始名称并去除空白$file_name = trim($_FILES['upload_file']['name']);// 删除文件名末尾的点$file_name = deldot($file_name);// 获取文件扩展名$file_ext = strrchr($file_name, '.');// 去除扩展名中的特殊字符串$file_ext = str_ireplace(':$DATA', '', $file_ext);// 去除空白字符$file_ext = trim($file_ext);// 检查文件扩展名是否在禁止列表中if (!in_array($file_ext, $deny_ext)) {// 获取上传文件的临时路径$temp_file = $_FILES['upload_file']['tmp_name'];// 生成保存路径和文件名,包含当前日期和随机数$img_path = UPLOAD_PATH . '/' . date("YmdHis") . rand(1000, 9999) . $file_ext;// 尝试将文件从临时目录移动到目标目录if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 上传成功,设置标志为true} else {$msg = '上传出错!';  // 移动文件失败,设置错误消息}} else {$msg = '此文件类型不允许上传!';  // 文件扩展名在禁止列表中,设置错误消息}} else {$msg = UPLOAD_PATH . ' 文件夹不存在,请手工创建!';  // 上传路径不存在,设置错误消息}
}

通过分析咱们可以发现他并没有对扩展名的大小写进行统一转换,这不就意味着我把.php改成。PHP或者PHp就ok了,尝试一下

还是那套步骤试一下
在这里插入图片描述
成功在这里插入图片描述

Pass-06

在这里插入图片描述

目测可以用第四题的方法破解,试一试.htaccess在这里插入图片描述
好吧不行…在这里插入图片描述

那就浅浅审计一下代码叭在这里插入图片描述

$is_upload = false;  // 初始化上传标志,默认情况下设置为false
$msg = null;  // 初始化消息变量,默认情况下设置为null// 检查表单是否通过POST方法提交
if (isset($_POST['submit'])) {// 检查上传路径是否存在if (file_exists(UPLOAD_PATH)) {// 定义不允许上传的文件扩展名数组$deny_ext = array(".php", ".php5", ".php4", ".php3", ".php2", ".html", ".htm", ".phtml", ".pht",".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2", ".Html", ".Htm", ".pHtml",".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml", ".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml", ".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer", ".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr", ".sWf", ".swf", ".htaccess");// 获取上传文件的原始名称$file_name = $_FILES['upload_file']['name'];// 删除文件名末尾的点$file_name = deldot($file_name);// 获取文件扩展名$file_ext = strrchr($file_name, '.');// 将扩展名转换为小写$file_ext = strtolower($file_ext);// 去除字符串::$DATA$file_ext = str_ireplace('::$DATA', '', $file_ext);// 检查文件扩展名是否在禁止列表中if (!in_array($file_ext, $deny_ext)) {// 获取上传文件的临时路径$temp_file = $_FILES['upload_file']['tmp_name'];// 生成保存路径和文件名,包含当前日期和随机数$img_path = UPLOAD_PATH . '/' . date("YmdHis") . rand(1000, 9999) . $file_ext;// 尝试将文件从临时目录移动到目标目录if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 上传成功,设置标志为true} else {$msg = '上传出错!';  // 移动文件失败,设置错误消息}} else {$msg = '此文件不允许上传';  // 文件扩展名在禁止列表中,设置错误消息}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';  // 上传路径不存在,设置错误消息}
}

分析可发现限制了大小写,但是没有对空格进行过滤,那咱们加个空格不就行了。试一试
在这里插入图片描述
成功
在这里插入图片描述

Pass-07

在这里插入图片描述
全禁止了?尊嘟假嘟,不信。我就要找一找试试先不看源码在这里插入图片描述
信了…

老老实实审计代码吧在这里插入图片描述

$is_upload = false;  // 初始化上传标志,默认情况下设置为false
$msg = null;  // 初始化消息变量,默认情况下设置为null// 检查表单是否通过POST方法提交
if (isset($_POST['submit'])) {// 检查上传路径是否存在if (file_exists(UPLOAD_PATH)) {// 定义不允许上传的文件扩展名数组$deny_ext = array(".php", ".php5", ".php4", ".php3", ".php2", ".html", ".htm", ".phtml", ".pht",".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2", ".Html", ".Htm", ".pHtml",".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml", ".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml", ".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer", ".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr", ".sWf", ".swf", ".htaccess");// 获取上传文件的原始名称并去除空白$file_name = trim($_FILES['upload_file']['name']);// 获取文件扩展名$file_ext = strrchr($file_name, '.');// 将扩展名转换为小写$file_ext = strtolower($file_ext);// 去除扩展名中的特殊字符串$file_ext = str_ireplace('::$DATA', '', $file_ext);// 去除空白字符$file_ext = trim($file_ext);// 检查文件扩展名是否在禁止列表中if (!in_array($file_ext, $deny_ext)) {// 获取上传文件的临时路径$temp_file = $_FILES['upload_file']['tmp_name'];// 生成保存路径和文件名$img_path = UPLOAD_PATH . '/' . $file_name;// 尝试将文件从临时目录移动到目标目录if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 上传成功,设置标志为true} else {$msg = '上传出错!';  // 移动文件失败,设置错误消息}} else {$msg = '此文件类型不允许上传!';  // 文件扩展名在禁止列表中,设置错误消息}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';  // 上传路径不存在,设置错误消息}
}

分析后可以发现他没有过滤末尾的.。也就是说在扩展名的末尾加个.就好了。

试一下在这里插入图片描述

成功在这里插入图片描述

Pass-08

在这里插入图片描述

咋和第五题的提示一样,话不多说直接上源码在这里插入图片描述

$is_upload = false;  // 初始化上传标志,默认情况下设置为false
$msg = null;  // 初始化消息变量,默认情况下设置为null// 检查表单是否通过POST方法提交
if (isset($_POST['submit'])) {// 检查上传路径是否存在if (file_exists(UPLOAD_PATH)) {// 定义不允许上传的文件扩展名数组$deny_ext = array(".php", ".php5", ".php4", ".php3", ".php2", ".html", ".htm", ".phtml", ".pht",".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2", ".Html", ".Htm", ".pHtml",".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml", ".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml", ".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer", ".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr", ".sWf", ".swf", ".htaccess");// 获取上传文件的原始名称并去除空白$file_name = trim($_FILES['upload_file']['name']);// 删除文件名末尾的点$file_name = deldot($file_name);// 获取文件扩展名$file_ext = strrchr($file_name, '.');// 将扩展名转换为小写$file_ext = strtolower($file_ext);// 去除空白字符$file_ext = trim($file_ext);// 检查文件扩展名是否在禁止列表中if (!in_array($file_ext, $deny_ext)) {// 获取上传文件的临时路径$temp_file = $_FILES['upload_file']['tmp_name'];// 生成保存路径和文件名,包含当前日期和随机数$img_path = UPLOAD_PATH . '/' . date("YmdHis") . rand(1000, 9999) . $file_ext;// 尝试将文件从临时目录移动到目标目录if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 上传成功,设置标志为true} else {$msg = '上传出错!';  // 移动文件失败,设置错误消息}} else {$msg = '此文件类型不允许上传!';  // 文件扩展名在禁止列表中,设置错误消息}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';  // 上传路径不存在,设置错误消息}
}

可以发现本题没有去除字符串::$DATA,那咱们就加上试一试
在这里插入图片描述
成功
在这里插入图片描述

Pass-09

在这里插入图片描述
代码审计在这里插入图片描述

$is_upload = false;  // 初始化上传标志,默认情况下设置为false
$msg = null;  // 初始化消息变量,默认情况下设置为null// 检查表单是否通过POST方法提交
if (isset($_POST['submit'])) {// 检查上传路径是否存在if (file_exists(UPLOAD_PATH)) {// 定义不允许上传的文件扩展名数组$deny_ext = array(".php", ".php5", ".php4", ".php3", ".php2", ".html", ".htm", ".phtml", ".pht",".pHp", ".pHp5", ".pHp4", ".pHp3", ".pHp2", ".Html", ".Htm", ".pHtml",".jsp", ".jspa", ".jspx", ".jsw", ".jsv", ".jspf", ".jtml", ".jSp", ".jSpx", ".jSpa", ".jSw", ".jSv", ".jSpf", ".jHtml", ".asp", ".aspx", ".asa", ".asax", ".ascx", ".ashx", ".asmx", ".cer", ".aSp", ".aSpx", ".aSa", ".aSax", ".aScx", ".aShx", ".aSmx", ".cEr", ".sWf", ".swf", ".htaccess");// 获取上传文件的原始名称并去除空白$file_name = trim($_FILES['upload_file']['name']);// 删除文件名末尾的点$file_name = deldot($file_name);// 获取文件扩展名$file_ext = strrchr($file_name, '.');// 将扩展名转换为小写$file_ext = strtolower($file_ext);// 去除特殊字符串 '::$DATA'$file_ext = str_ireplace('::$DATA', '', $file_ext);// 去除扩展名首尾的空白字符$file_ext = trim($file_ext);// 检查文件扩展名是否在禁止列表中if (!in_array($file_ext, $deny_ext)) {// 获取上传文件的临时路径$temp_file = $_FILES['upload_file']['tmp_name'];// 生成保存路径和文件名,包含当前日期和随机数$img_path = UPLOAD_PATH . '/' . date("YmdHis") . rand(1000, 9999) . $file_ext;// 尝试将文件从临时目录移动到目标目录if (move_uploaded_file($temp_file, $img_path)) {$is_upload = true;  // 上传成功,设置标志为true} else {$msg = '上传出错!';  // 移动文件失败,设置错误消息}} else {$msg = '此文件类型不允许上传!';  // 文件扩展名在禁止列表中,设置错误消息}} else {$msg = UPLOAD_PATH . '文件夹不存在,请手工创建!';  // 上传路径不存在,设置错误消息}
}

分析发现过滤了大小写,空格,点以及数据流 , 但只过滤了一遍点和空格 , 我们在文件后缀名添加空格点空格点 ,或者是点空格点来绕过黑名单在这里插入图片描述
搞定
在这里插入图片描述

Pass-10

在这里插入图片描述
会去除扩展名的话直接双写试试在这里插入图片描述

成功在这里插入图片描述

Pass-11

在这里插入图片描述
路径,大概率是直接%00截断

看一看源码叭在这里插入图片描述

用的是白名单那咱们就直接试一试在这里插入图片描述
在这里插入图片描述
本题要求php版本小于等于5.3.4,否则会显示上传失败

Pass-12

在这里插入图片描述
emmm直接代码审计吧
在这里插入图片描述
依旧是白名单,只不过这个是post,和上一个操作方式一样。
在这里插入图片描述
在这里插入图片描述
版本问题所以会显示上传失败

Pass-13

在这里插入图片描述
先建一个php文件输入内容

<?php echo "Are you OK";
?>

先自己生成一个图片马在Linux上需要用cat指令

cat 222.jpg 111.php > 333.jpg
cat 222.jpg 111.php > 333.png
cat 222.jpg 111.php > 333.gif

在这里插入图片描述
直接上传图片然后可以进入burp看一看抓到的这个post包进行分析,可以看到我在php里写的内容在这里插入图片描述
完成

Pass-14

在这里插入图片描述

和上一题一样直接上传图片马
检验方法和上题一样
结案下一题

Pass-15

在这里插入图片描述
和上题一样,直接上传图片马
检验方法和上题一样
这三题虽然步骤一样,但是考点是不一样

Pass-16

在这里插入图片描述
代码审计

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

$is_upload = false;  // 初始化上传标志,默认情况下设置为false
$msg = null;  // 初始化消息变量,默认情况下设置为nullif (isset($_POST['submit'])){  // 检查表单是否通过POST方法提交// 获得上传文件的基本信息,文件名,类型,大小,临时文件路径$filename = $_FILES['upload_file']['name'];$filetype = $_FILES['upload_file']['type'];$tmpname = $_FILES['upload_file']['tmp_name'];// 定义目标路径$target_path = UPLOAD_PATH . '/' . basename($filename);// 获得上传文件的扩展名$fileext = substr(strrchr($filename, "."), 1);// 判断文件后缀与类型,合法才进行上传操作if (($fileext == "jpg") && ($filetype == "image/jpeg")) {if (move_uploaded_file($tmpname, $target_path)) {// 使用上传的图片生成新的图片$im = imagecreatefromjpeg($target_path);if ($im == false) {$msg = "该文件不是jpg格式的图片!";@unlink($target_path);} else {// 给新图片指定文件名srand(time());$newfilename = strval(rand()) . ".jpg";// 显示二次渲染后的图片(使用用户上传图片生成的新图片)$img_path = UPLOAD_PATH . '/' . $newfilename;imagejpeg($im, $img_path);@unlink($target_path);$is_upload = true;}} else {$msg = "上传出错!";}} else if (($fileext == "png") && ($filetype == "image/png")) {if (move_uploaded_file($tmpname, $target_path)) {// 使用上传的图片生成新的图片$im = imagecreatefrompng($target_path);if ($im == false) {$msg = "该文件不是png格式的图片!";@unlink($target_path);} else {// 给新图片指定文件名srand(time());$newfilename = strval(rand()) . ".png";// 显示二次渲染后的图片(使用用户上传图片生成的新图片)$img_path = UPLOAD_PATH . '/' . $newfilename;imagepng($im, $img_path);@unlink($target_path);$is_upload = true;               }} else {$msg = "上传出错!";}} else if (($fileext == "gif") && ($filetype == "image/gif")) {if (move_uploaded_file($tmpname, $target_path)) {// 使用上传的图片生成新的图片$im = imagecreatefromgif($target_path);if ($im == false) {$msg = "该文件不是gif格式的图片!";@unlink($target_path);} else {// 给新图片指定文件名srand(time());$newfilename = strval(rand()) . ".gif";// 显示二次渲染后的图片(使用用户上传图片生成的新图片)$img_path = UPLOAD_PATH . '/' . $newfilename;imagegif($im, $img_path);@unlink($target_path);$is_upload = true;}} else {$msg = "上传出错!";}} else {$msg = "只允许上传后缀为.jpg|.png|.gif的图片文件!";}
}

图片进行二次渲染处理,这样的话就算上传图片马内容也会被重写啊…
是我太菜了没有一点思路
于是我在网上找了一些相关文章发现两篇不错的教程:
https://www.cnblogs.com/forforever/p/13191999.html

https://xz.aliyun.com/t/2657?time__1311=n4%2BxnieDw4uneG%3DD%2FWT4BKg34fobDGqIhD

初学者能力有限请见谅


解题感悟

掌握了很多思路与方法,这个靶场涵盖了常见的漏洞,就算我不理解网上的教程咋都是在本地部署的环境,让我这个在kali上进行解题的格格不入。。。。

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

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

相关文章

原生标签WebComponent

文章目录 介绍一、web Component二、怎么使用三、在Vue中使用使用场景 前端必备工具推荐网站(免费图床、API和ChatAI等实用工具): http://luckycola.com.cn/ 介绍 平常浏览各个网站过程中&#xff0c;经常遇到的一种现象&#xff1a;页面广告。 这种广告按照来源可分为两种&…

蜜罐技术是一种什么防御技术?实现原理是什么?

前言&#xff1a;蜜罐技术的出现改变了这种被动态势&#xff0c;它通过吸引、诱骗攻击者&#xff0c;研究学习攻击者的攻击目的和攻击手段&#xff0c;从而延缓乃至阻止攻击破坏行为的发生&#xff0c;有效保护真实服务资源。 自网络诞生以来&#xff0c;攻击威胁事件层出不穷…

类和对象【六】友元和内部类

文章目录 友元友元的作用友元的缺点友元函数语法&#xff1a;特点&#xff1a; 友元类语法&#xff1a;特点&#xff1a; 内部类概念特点 友元 友元的作用 友元提供了一种打破封装的方式&#xff0c;有时提供了便利。 友元的主要作用就是打破封装 即可以让一个类的友元函数…

爬虫100个Python例子优化

今天看到一个Python 100例的在线资源,感觉每个都需要去点,太费时间了,于是,使用Python将数据爬取下来,方便查看。实际效果如下: 。。。。。。 用了13分钟,当然,这是优化后的效果,如果没有优化,需要的时间更长。 爬取url如下: https://www.runoob.com/python/pytho…

uniapp+vue3+ts开发小程序或者app架构时候的UI框架选型

使用vue3tsviteuniapp开发小程序或者跨平台app的趋势越来越高&#xff0c;有一个顺手的UI的框架还是非常重要的&#xff0c;官方维护的 uni-ui&#xff0c;支持全端&#xff0c;而且有类型提示&#xff0c;目前已经内置到 GitHub - Sjj1024/uniapp-vue3: 使用uniapp和vue3 ts …

搭建CMS系统

搭建CMS系统 1 介绍 内容管理系统&#xff08;Content Management System&#xff0c;CMS&#xff09;是一种用于管理、发布和修改网站内容的系统。开源的CMS系统有WordPress、帝国CMS等&#xff0c;国产的Halo很不错。 WordPress参考地址 # 官网 https://wordpress.org/# …

Python脚本必加代码:99%的程序员都忽视了这个细节!

文章目录 一、初识 if __name__ __main__二、__name__ 和 __main__ 是什么&#xff1f;三、实战讲解四、实际应用场景测试代码提高代码可重用性避免不必要的执行 五、深入理解和更多用法使用 argparse 解析命令行参数使用 unittest 进行单元测试使用 multiprocessing 创建子进…

嵌入式全栈开发学习笔记---C语言笔试复习大全22

目录 结构体 结构体的声明 定义结构体变量 访问结构体成员进行初始化 通过结构体变量名访问结构体成员 结构体指针 结构体指针的定义 通过结构体指针访问结构体成员 结构体数组 结构体数组的定义 遍历结构体数组 结构体的长度&#xff08;笔试重点&#xff09; 上一…

哈希双指针

文章目录 一、哈希1.1两数之和1.2字母异位词分组1.3最长子序列 二、双指针2.1[移动零](https://leetcode.cn/problems/move-zeroes/description/?envTypestudy-plan-v2&envIdtop-100-liked)2.2[盛最多水的容器](https://leetcode.cn/problems/container-with-most-water/d…

蓝桥楼赛第30期-Python-第三天赛题 统计学习数据题解

楼赛 第30期 Python 模块大比拼 统计学习数据 介绍 JSON&#xff08;JavaScript Object Notation, /ˈdʒeɪsən/&#xff09;是一种轻量级的数据交换格式&#xff0c;最初是作为 JavaScript 的子集被发明的&#xff0c;但目前已独立于编程语言之外&#xff0c;成为了通用的…

使用pyqt绘制一个爱心!

使用pyqt绘制一个爱心&#xff01; 介绍效果代码 介绍 使用pyqt绘制一个爱心&#xff01; 效果 代码 import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QWidget from PyQt5.QtGui import QPainter, QPen, QBrush, QColor from PyQt5.QtCore import Qt, Q…

[保姆式教程]使用目标检测模型YOLO V8 OBB进行旋转目标的检测:训练自己的数据集(基于卫星和无人机的农业大棚数据集)

最近需要做基于卫星和无人机的农业大棚的旋转目标检测&#xff0c;基于YOLO V8 OBB的原因是因为尝试的第二个模型就是YOLO V8&#xff0c;后面会基于YOLO V9模型做农业大棚的旋转目标检测。YOLO V9目前还不能进行旋转目标的检测&#xff0c;需要修改代码 PS:欢迎大家分享农业大…

【研发日记】Matlab/Simulink技能解锁(九)——基于嵌入式处理器仿真

文章目录 前言 基于嵌入式处理器仿真 使用方式 第一步&#xff0c;硬件连接 第二步&#xff0c;配置硬件资源 第三步&#xff0c;配置XCP协议 第四步&#xff0c;加载Contrl Model 第五步&#xff0c;运行仿真 第六步&#xff0c;仿真报告 分析和应用 总结 参考资料 前言…

无线技术整合到主动噪声控制(ANC)增强噪声降低性能

主动噪声控制&#xff08;ANC&#xff09;已成为一种广泛使用的降噪技术。基本原理是通过产生与外界噪音相等的反向声波&#xff0c;将噪音中和&#xff0c;从而达到降噪的效果。ANC系统通常包括以下几个部分&#xff1a;参考麦克风、处理芯片、扬声器和误差麦克风。参考麦克风…

家政保洁服务小程序怎么做?家政公司快速搭建专属小程序

在数字化时代背景下&#xff0c;家政保洁服务行业也迎来了线上转型的新机遇。家政保洁服务小程序&#xff0c;作为一种新型的线上服务平台&#xff0c;不仅能够提升家政公司的服务效率&#xff0c;还能为顾客提供更加便捷的预约上门服务体验。那么家政保洁服务小程序怎么做呢&a…

从零开始搭建一个SpringBoot项目

目录 Spring BootSpring Boot 项目开发环境1、快速创建SpringBoot项目2、pom.xml 添加 Meavn 依赖3、配置application.yml4、验证数据库是否连接成功5、配置 Druid 数据源 Spring Boot 整合 MyBatis1、准备依赖2、application-dev.yml 配置3、启动类添加Mapper接口扫描器4、设置…

BWVS 靶场测试

一、PHP弱类型 is_numeric() 输入&#xff1a;127.0.0.1/BWVS/bug/php/code.php # 1、源代码分析 如果num不是数字&#xff0c;那么就输出num&#xff0c;同时如果num1&#xff0c;就输出flag。即num要是字符串又要是数字 # 2、函数分析&#xff1a; is_numeric()函数&…

《最新出炉》系列入门篇-Python+Playwright自动化测试-40-录制生成脚本

宏哥微信粉丝群&#xff1a;https://bbs.csdn.net/topics/618423372 有兴趣的可以扫码加入 1.简介 各种自动化框架都会有脚本录制功能&#xff0c; playwright这么牛叉当然也不例外。很早之前的selenium、Jmeter工具&#xff0c;发展到每种浏览器都有对应的录制插件。今天我们…

牛客NC392 参加会议的最大数目【中等 贪心+小顶堆 Java/Go/PHP 力扣1353】

题目 题目链接&#xff1a; https://www.nowcoder.com/practice/4d3151698e33454f98bce1284e553651 https://leetcode.cn/problems/maximum-number-of-events-that-can-be-attended/description/ 思路 贪心优先级队列Java代码 import java.util.*;public class Solution {/**…

java面试高级篇(JVM、Mysql、Redis、Kafka)

文章目录 面试专题-java高级篇1. JVM有做过jvm的调优吗?常用的jvm参数调优有哪些?如果jvm持续一段时间频繁的发生Young GC (轻GC) 可能原因有哪些? 2. Mysql2.1. 基本功(见为知笔记)2.2. 什么是索引2.3. 索引的优劣势2.4. MySQL的索引结构2.4.1. B-Tree索引2.4.2. BTree索引…