【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.pswp.cn/web/15675.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/15675.shtml
英文地址,請注明出處:http://en.pswp.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;攻擊威脅事件層出不窮…

簡述Vue 2.0 響應式數據的原理

Vue 2.0 響應式數據的原理主要基于以下幾個關鍵點&#xff1a; 數據劫持與Object.defineProperty&#xff1a; Vue 2.0 使用 Object.defineProperty 方法來劫持對象的屬性&#xff0c;為其添加 getter 和 setter 方法。當數據被訪問或修改時&#xff0c;這些 getter 和 setter …

類和對象【六】友元和內部類

文章目錄 友元友元的作用友元的缺點友元函數語法&#xff1a;特點&#xff1a; 友元類語法&#xff1a;特點&#xff1a; 內部類概念特點 友元 友元的作用 友元提供了一種打破封裝的方式&#xff0c;有時提供了便利。 友元的主要作用就是打破封裝 即可以讓一個類的友元函數…

爬蟲100個Python例子優化

今天看到一個Python 100例的在線資源,感覺每個都需要去點,太費時間了,于是,使用Python將數據爬取下來,方便查看。實際效果如下: 。。。。。。 用了13分鐘,當然,這是優化后的效果,如果沒有優化,需要的時間更長。 爬取url如下: https://www.runoob.com/python/pytho…

Vue小程序項目知識積累(三)

1.CSS中的var( ) var() 函數用于插入自定義屬性&#xff08;也稱為CSS變量&#xff09;的值。 var(--main-bg-color,20rpx) 設置一個CSS變量的值&#xff0c;但是如果 --main-bg-color 變量不存在&#xff0c;它將默認返回 20rpx。 CSS變量必須在一個有效的CSS規則&#xf…

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/# …

為什么IP地址需要劃分為公有和私有地址?

一.知識點的解釋 1.在現在的網絡中&#xff0c;IP地址分為公網IP地址和私有IP地址。公網IP是在Internet使用的IP地址&#xff0c;而私有IP地址則是在局域網中使用的IP地址。 2.私有IP地址是一段保留的IP地址。只使用在局域網中&#xff0c;無法在Internet上使用。 二.為什么…

Python腳本必加代碼:99%的程序員都忽視了這個細節!

文章目錄 一、初識 if __name__ __main__二、__name__ 和 __main__ 是什么&#xff1f;三、實戰講解四、實際應用場景測試代碼提高代碼可重用性避免不必要的執行 五、深入理解和更多用法使用 argparse 解析命令行參數使用 unittest 進行單元測試使用 multiprocessing 創建子進…

c#入門學習筆記

p35 字符串 在字符串之前加上一個&#xff0c;可以保持原生字符&#xff0c;不用再進行轉義&#xff08;除了雙引號&#xff09;。 例如&#xff1a; "A short list: item 1 item 2"或者&#xff1a; "C:\Temp\MyDir\MyFile.doc"這相當于"C:\\Tem…

網盤攻略,羊毛薅到底,這4招太狠了

僅供參考 先買原石會員賬戶&#xff0c;再綁手機。 自己手機千萬不要去注冊115&#xff0c;先去馬云家買原石會員帳戶(五十多自帶33T永久空間&#xff0c;非常實惠)。買完原石帳戶后再用手機登錄綁定帳戶和修改密碼。買8T永久空間8年VIP 然后再花560元買8T永久空間8年vip&…

嵌入式全棧開發學習筆記---C語言筆試復習大全22

目錄 結構體 結構體的聲明 定義結構體變量 訪問結構體成員進行初始化 通過結構體變量名訪問結構體成員 結構體指針 結構體指針的定義 通過結構體指針訪問結構體成員 結構體數組 結構體數組的定義 遍歷結構體數組 結構體的長度&#xff08;筆試重點&#xff09; 上一…

深入理解C++多態-虛函數

引言 C多態的實現方式可以分為靜態多態和動態多態&#xff0c;其中靜態多態主要有函數重裝和模板兩種方式&#xff0c;動態多態就是虛函數。下面我們將通過解答以下幾個問題的方式來深入理解虛函數的原理&#xff1a; 為什么要引入虛函數&#xff1f;&#xff08;用來解決什么…

2024年最新信息安全標準匯總

這些標準是我們在數字化時代保障網絡安全、數據安全的重要基石&#xff0c;對于維護國家安全、企業利益和個人信息安全具有至關重要的作用。 隨著科技的快速發展&#xff0c;網絡空間的安全威脅也在不斷演變&#xff0c;從復雜的網絡攻擊到個人信息泄露&#xff0c;這些安全風…

JAVA面試題大全(十四)

1、Kafka 可以脫離 Zookeeper 單獨使用嗎&#xff1f;為什么&#xff1f; kafka不能脫離zookper單獨使用&#xff0c;因為kafka使用zookper管理和協調kafka的節點服務器。 2、Kafka 有幾種數據保留的策略&#xff1f; Kafka提供了多種數據保留策略&#xff0c;這些策略用于定…

哈希雙指針

文章目錄 一、哈希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…

嵌入式0基礎開始學習 ⅠC語言(7)指針

0.問題引入 int a 5; a 1024; //把1024存放到變量a的地址中去 b a; // 取變量a的值&#xff0c;賦值給b >在c語言中&#xff0c;任何一個變量&#xff0c;都有兩層含義 (1)代表變量的存儲單元的地址&#xff1a;變量的地址…

藍橋樓賽第30期-Python-第三天賽題 統計學習數據題解

樓賽 第30期 Python 模塊大比拼 統計學習數據 介紹 JSON&#xff08;JavaScript Object Notation, /?d?e?s?n/&#xff09;是一種輕量級的數據交換格式&#xff0c;最初是作為 JavaScript 的子集被發明的&#xff0c;但目前已獨立于編程語言之外&#xff0c;成為了通用的…

分享10個國內可以使用的GPT中文網站

在今天的人工智能領域&#xff0c;基于對話的語言模型已成為研究的熱點&#xff0c;尤其是像 ChatGPT 這樣因其出色的語言理解與對話交互能力而廣受關注的模型。本文將介紹10個國內可以直接使用GPT的網站&#xff0c;旨在為大家在選擇和使用這些優秀的AI工具時提供有價值的參考…