SQLmap用法

SQLMAP作用

  1. 判斷可注入的參數
  2. 判斷可以用哪種SQL注入技術來注入
  3. 識別出哪種數據庫
  4. 根據用戶選擇,讀取哪些數據

五種注入模式

  1. 基于布爾的盲注,即可以根據返回頁面判斷條件真假的注入。
  2. 基于時間的盲注,即不能根據頁面返回內容判斷任何信息,用條件語句查看時間延遲語句是否執行(即頁面返回時間是否增加)來判斷。
  3. 基于報錯注入,即頁面會返回錯誤信息,或者把注入的語句的結果直接返回在頁面中。
  4. 聯合查詢注入,可以使用union的情況下的注入
  5. 堆查詢注入,可以同時執行多條語句的執行時的注入。

支持哪些數據庫注入?

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • IBM DB2
  • SQLite
  • Firebird
  • Sybase
  • SAP MaxDB

必備參數

觀察數據

-v參數,共有7個等級,默認為1

  • -v 0 只顯示python錯誤以及嚴重的信息
  • -v 1 同時顯示基本信息和警告信息。(默認)
  • -v 2 同時顯示debug信息。
  • -v 3 同時顯示注入的payload。
  • -v 4 同時顯示HTTP請求。
  • -v 5 同時顯示HTTP相應頭。
  • -v 6 同時顯示HTTP相應頁面。

如果想看到SQLmap發送的測試payload最好的等級就是3

獲取目標方式

  1. 直接連接到數據庫
    參數:-d
    對單個數據庫實例運行SQLmap
python sqlmap.py -d "mysql://admin:admin@127.0.0.1:3306/db"
  1. 目標URL
    參數:-u或者--url
python sqlmap.py -u "http(s)://targeturl:[port]/[...]" 
  1. 從Burp或者WebScarab代理中獲取日志
    參數:-l
    從日志直接導出來交給sqlmap檢測
  2. 從文本中獲取多個目標掃描
    參數:-m
    url保存在文本中,sqlmap一個一個檢測
  3. 從文件中加載HTTP請求
    參數:-r
    可以跳過設置一些其他參數比如cookie,POST數據
    當請求是HTTPS的時候需要配合這個--force-ssl參數使用,或者可以在Host頭后面加上:443
  4. 處理Google的搜索結果
    參數:-g
    sqlmap可以測試注入Google的搜索結果中的GET參數
python sqlmap.py -g "inurl:\".php?id=1\""
  1. 配置加載選項INI文件
    參數:-c
    加載sqlmap.conf文件里面的相關配置

請求方式

  1. HTTP數據
    參數:--data
    把數據以POST方式提交,sqlmap會像檢測GET參數一樣檢測POST的參數
python sqlmap.py -u "http://www.target.com/vuln.php" --data="id=1"
  1. 參數拆分字符
    參數:-param-del
    當GET或POST的數據需要用其他字符分割測試參數的時候需要用到此參數
python sqlmap.py -u "http://www.target.com/vuln.php" --data="query=foobar;id=1" --param-del=";" 
  1. HTTP cookie頭
    參數:--cookie, --load-cookies, --drop-set-cookie
    web應用需要登錄的時候
    在這些頭參數中測試SQL注入時
    如果不想接受Set-Cookie可以使用--drop-set-cookie參數來拒接
  2. HTTP User-Agent頭
    參數:--user-agent, --random-agent
    可以使用--user-agent參數來修改,同時也可以使用--random-agent參數隨機從./txt/user-agents.txt中獲取
    當--level參數設定為3或者3以上時,會嘗試對User-Agent進行注入
  3. HTTP host頭
    參數:--host
    可以手動設置HTTP host的值
  4. HTTP Referer頭:
    參數:--referer
    sqlmap可以在請求中偽造HTTP中的referer,當--level參數設定為3或者3以上的時候會嘗試對referer注入
  5. 額外的HTTP頭
    參數:--headers
    可以通過--headers參數來增加額外的http頭
  6. HTTP認證保護
    參數:--auth-type, --auth-cred
    登錄HTTP的認證保護支持三種方式:
  • Basic
  • Digest
  • NTLM
python sqlmap.py -u "http://192.168.1.1/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"
  1. HTTP協議的證書認證
    參數:--auth-type, --auth-cert
    當web服務器需要端客戶證書進行身份驗證時,需要提供兩個文件:key_file, cert_file
    key_file是格式為PEM文件,包含著你的私鑰,cert_file是格式為PEM的連接文件
  2. HTTP協議私有密鑰身份驗證
    參數:--auth-private
    這個選項應該在情況下,web服務器需要使用適當的客戶端私鑰進行身份驗證,提供的價值應該是PEM格式key_file包含你的私鑰
  3. HTTP(S)代理
    參數:--proxy, --proxy-cred, --ignore-proxy
    使用--proxy代理格式為:http://url:port/
    當HTTP(S)代理需要認證是可以使用--proxy-cre參數:username:password
    --ignore-proxy拒絕使用本地局域網的HTTP(S)代理
  4. Tor網絡匿名
    參數:--tor, --tor-port, --tor-type和--check-tor
    如果你需要保持匿名,而不是經過一個預定義的HTTP(S)代理服務器,你可以配置一個Tor客戶在一起Privoxy(或類似的)在你的機器上解釋Tor安裝指南,然后你可以使用一個開關--tor和sqlmap將嘗試自動設置Tor代理連接設置
  5. HTTP請求延遲
    參數:--delay
    設定兩個HTTP(S)請求間的延遲,設定為0.5的時候是半秒,默認是沒有延遲的
  6. 設定超時時間
    參數:--timeout
    可以設定一個HTTP(S)請求超過15多久判定為超時,默認是30秒
  7. 設定重試超時
    參數:--retries
    當HTTP(S)超時時,可以設定重新嘗試連接次數,默認是3次
  8. 設定隨機改變的參數值
    參數:--randomize
    可以設定某一個參數值在每一次請求中隨機的變化,長度和類型會與提供的初始值一樣
  9. 利用正則過濾目標網址
    參數:--scope
python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"
  1. 避免過多的錯誤請求被屏蔽
    參數:--safe-url, --safe-freq
    有的web應用程序會在你多次訪問錯誤的請求時屏蔽掉你以后的所有請求,這樣在sqlmap進行探測或者注入的時候可能造成錯誤請求而觸發這個策略,導致以后無法進行。
  • --safe-url:提供一個安全不錯誤的連接,每隔一段時間都會訪問一下
  • --safe-freq:提供一個安全不錯誤的連接,每次測試請求之后都會再訪問一遍安全連接
  1. 使用SSL/HTTPS
    參數:--force-ssl
    如果用戶想要強迫使用SSL/HTTPS請求目標,可以使用此參數
  2. 關掉URL參數值編碼
    參數:--skip-urlencode
    根據參數位置,他的值默認將會被URL編碼,但是有些時候后端的web服務器不遵守RFC標準只接受不經過URL編碼的值,這時候就需要用--skip-urlencode參數
  3. 每次請求時候執行自定義的python代碼
    參數:--eval
    有些時候需要根據某個參數的變化,而修改另一個參數,才能形成正常的請求,這時可以用--eval參數在每次請求時根據所寫python代碼做完修改后請求
python sqlmap.py -u "http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

優化

  1. 收集優化
    參數:-o
    這個參數是一個別名,隱式地設置以下選項和交換機
  • --keep-alive
  • --null-connection
  • --threads=3
  1. 輸出預測
    參數:--predict-output
    這里是用于推理算法順序檢索的值的字符統計預測
  2. HTTP活動
    參數:--keep-alive
    指示sqlmap HTTP(S)使用持久連接
  3. HTTP空連接
    參數:--null-connection
    可以用在盲目注入技術來區分True從False響應
  4. 并發HTTP(S)請求
    參數:-threads
    可以指定并發HTTP(S)請求的最大數量

探測

  1. 測試參數
    參數:-p, -skip
    當使用--level的值很大但是有個別參數 不想測試的時候可以使用--skip參數,
--skip="user-agent.referer"
  1. URL注入點
    參數:-u
python sqlmap.py -u "http://targeturl/param/value*/
  1. 指定數據庫
    參數:-dbms
    默認情況sqlmap會自動探測web應用后端的數據庫
  2. 風險等級
    參數:--risk
    共有三個風險等級,默認是1會測試大部分的測試語句,2會增加基于事件的測試語句,3會增加OR語句的SQL注入測試
  3. 頁面比較
    參數:--string, --not-string, --regexp, --code
    默認情況下sqlmap通過判斷返回頁面的不同來判斷真假,但有時候這會產生誤差,因為有的頁面在每次刷新的時候都會返回不同的代碼,比如頁面當中包含一個動態的廣告或者其他內容,這會導致sqlmap的誤判。此時用戶可以提供一個字符串或者一段正則匹配,在原始頁面與真條件下的頁面都存在的字符串,而錯誤頁面中不存在(使用--string參數添加字符串,--regexp添加正則),同時用戶可以提供一段字符串在原始頁面與真條件下的頁面都不存在的字符串,而錯誤頁面中存在的字符串(--not-string添加)。用戶也可以提供真與假條件返回的HTTP狀態碼不一樣來注入,例如,響應200的時候為真,響應401的時候為假,可以添加參數--code=200。
    參數:--text-only, --titles
    有些時候用戶知道真條件下的返回頁面與假條件下返回頁面是不同位置在哪里可以使用--text-only(HTTP響應體中不同)--titles(HTML的title標簽中不同)。

注入技術

  1. 測試是否是注入點
    參數:--technique
  • B:Boolean-based blind SQL injection(布爾型注入)
  • E:Error-based SQL injection(報錯型注入)
  • U:UNION query SQL injection(可聯合查詢注入)
  • S:Stacked queries SQL injection(可多語句查詢注入)
  • T:Time-based blind SQL injection(基于時間查詢注入)
  1. 設定延遲注入的時間
    參數: --time-sec
    當使用基于時間的盲注時,使用--time-sec參數設定延遲時間,默認是5秒
  2. 設定UNION查詢字段數
    參數:--union-cols
    默認情況下sqlmap測試UNION查詢注入會測試1-10字段數,當--level為5的時候,他會增加測試到50個字段數,設定--union-cols的值應該是一段整數,如:12-16
  3. 設定UNION查詢使用的字符
    參數:--union-char
    默認情況下sqlmap針對UNION查詢的注入會使用NULL字符,但是有些情況下會造成頁面返回失敗,而一個隨機整數是成功的,這時你可用--union-char指定UNION查詢的字符
  4. DNS泄露攻擊
    參數:--dns-domain
    如果用戶是控制一臺機器注冊為DNS域服務器(例如域attacker.com)他可以打開使用這個選項
  5. 二階SQL注入
    參數:--second-order
    有些時候注入點輸入的數據看返回結果的時候并不是當前的頁面,而是另外的一個頁面,這時候就需要你指定到哪個頁面獲取響應判斷的真假,--second-order后面跟一個判斷頁面的URL地址

指紋

數據庫管理系統指紋
參數:-f或--fingerprint
通過指紋判別數據庫類型

列數據

  1. 標志
    參數:-b, --banner
    獲取當前數據庫版本
  2. 用戶
    參數:--current-user
  3. 當前數據庫
    參數:--current-db
  4. 當前用戶是否為管理員
    參數:--is--dba
  5. 列數據庫管理用戶
    參數:--users
    當前用戶有權限讀取包含所有用戶的表的權限時,就可以列出所有管理用戶
  6. 列出并破解數據庫用戶的hash
    參數:--passwords
    當前用戶有權限讀取包含用戶密碼的表的權限時,就可以列出hash,并嘗試破解
python sqlmap.py -u "http://192.168.1.1/sqlmap/pgsql/get_int.php?id=1" --passwords -v 1

也可以提供-U參數來指定爆破某個用戶的hash

  1. 列出數據庫管理員權限
    參數:--privileges
    當前用戶有權限讀取包含所有用戶的表的權限時,很可能列舉出每個用戶的權限,sqlmap將會告訴你哪個是數據庫的超級管理員,也可以用-U參數指定某個用戶
  2. 列出數據庫管理員角色
    參數:--roles
    當前用戶有權限讀取包含所有用戶的表的權限,很可能列舉出每個用戶的角色,也可以用-U參數指定你想看某個用戶的角色
    僅適用于當前數據庫是Oracle的時候
  3. 列出數據庫系統的數據庫
    參數:--dbs
    當前用戶有權限讀取包含所有數據庫列表信息的表中的時候,即可列出所有的數據庫
  4. 列舉數據庫表
    參數:--tables, --exclude-sysdbs, -D
    如果不提供-D參數來列指定的一個數據的時候,sqlmap會列出所有的數據庫的所有表
    --exclude-sysdbs參數是指包含了所有的系統數據庫
    需要注意的是在Oracle中需要提供的是TABLESPACE_NAME而不是數據庫名稱
  5. 列舉數據庫中的字段
    參數:--columns, -C, -T, -D
    如果沒有使用-D參數指定數據庫時,默認會使用當前數據庫
  6. 列舉數據庫系統的架構
    參數:--schema, --exclude-sysdbs
    可以用此參數獲取數據庫的架構,包含所有的數據庫,表和字段,以及各自的類型
    加上--exclude-sysdbs參數,將不會獲取數據庫自帶的系統庫內容
  7. 獲取表中數據個數
    參數:--count
  8. 獲取整個表的數據
    參數:--dump, -C, -T, -D, --start, --stop, --first, --last
    如果當前管理員有權限讀取數據庫其中一個表的話,就能獲取整個表的所有內容
    使用-D, -T參數指定數據庫和表,不使用-D參數時,默認使用當前庫
    可以獲取指定庫中的所有表的內容,只用-dump和-D參數(不使用-T與-C參數)
  9. 獲取所有數據庫表的內容
    參數:--dump-all, --exclude-sysdbs
    使用--dump-all參數獲取所有數據庫表的內容,可同時加上--exclude-sysdbs只獲取用戶數據庫的表,需要注意在Microsoft SQL Server中maser數據庫沒有考慮成為一個系統數據庫,因為有的管理員會把他當成用戶數據庫一樣使用
  10. 搜索字段,表,數據庫
    參數:--search, -C, -T, -D
    --search可以用來尋找特定的數據庫名,所有數據庫中的特定表名,所有數據庫中的特定字段
    -C后跟著用逗號分隔的列名,將會在所有數據庫表中搜索指定的列名
    -T后跟著用逗號分隔的表名,將會在所有數據庫中搜索指定的表名
    -D后跟著用逗號分隔的庫名,將會在所有數據庫中搜索指定的庫名
  11. 運行自定義的SQL語句
    參數:--sql-query, --sql-shell
    如果是SELECT查詢語句,sqlmap將會輸出結果,如果通過SQL注入執行其他語句,需要測試是否支持多語句執行

爆破

  1. 暴力破解表名
    參數:--common-tables
    當使用--tables無法獲取到數據庫的表時,可以使用此參數
  2. 暴力破解列名
    參數:--common-columns
    與暴力破解表名一樣,暴力跑的列名在txt/common-columns.txt中

用戶自定義函數注入

用戶自定義函數(UDF)
參數:--udf-inject, --shared-lib
你可以通過反編譯MySQL注入你自定義的函數(UDFs)或PostgreSQL在Windows中共享庫,DLL,或者Linux/Unix中共享對象,sqlmap將會問你一些問題,上傳到服務器數據庫自定義函數,然后根據你的選擇執行他們,當你注入完成后,sqlmap將會移除它們。

系統文件操作

  1. 從數據庫服務器中讀取文件
    參數:--file-read
    當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數,讀取的文件可以是文本也可以是二進制文件
  2. 把文件上傳到數據庫服務器中
    參數:--file-write, --file-dest
    當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數,上傳的文件可以是文本也可以是二進制文件

操作系統

  1. 運行任意操作系統命令
    參數:--os-cmd
    當數據庫為MySQL,PostgreSQL或Microsoft SQL Server,并且當前用戶有權限使用特定的函數
    在MySQL,PostgreSQL,sqlmap上傳一個二進制庫,包含用戶自定義的函數,sys_exec()和sys_eval()
  2. 寫入真實的shell
    參數:--os-shell
    網站絕對路徑
  • ASP
  • ASP.NET
  • JSP
  • PHP
  1. Meterperter配合使用
    參數:--os-pwn, --os-smbrelay, --os-bof, --priv-esc, --msf-path, --tmp-path
  • 通過用戶自定義的sys_bineval()函數在內存中執行Metasploit的shellcode,支持MySQL和PostgreSQL數據庫,參數:--os-pwn
  • 通過用戶自定義的函數上傳一個獨立的payload執行 ,MySQL和PostgreSQL的sys_exec()函數,Microsoft SQL Server的xp_cmdshell()函數,參數:--os-pwn
  • 通過SMB攻擊(MS08-068)來執行Metasploit的shellcode,當sqlmap獲取到的權限足夠高時(Linux/Unix的uid=0,Windows是Administrator),參數:--os--smbrelay
  • 通過溢出Microsoft SQL Server 2000和2005的sp_replwritetovarbin存儲過程(MS09-004),在內存中執行Metersploit的payload,參數:--os-bof

對Windows注冊表的操作

讀取注冊表值
參數:--reg-read
寫入注冊表值
參數:--reg-add
刪除注冊表值
參數: --reg-del
注冊表輔助選項
參數: --reg-key, --reg-value, --reg-data, --reg-type

其他的一些參數

  1. 使用參數縮寫
    參數:-z
    有使用參數太長太復雜,可以使用縮寫模式
  2. 成功SQL注入時警告
    參數:-alert
  3. 設定回答
    參數:--answers
    當sqlmap提出輸入時,自動輸入自己想要的回答
  4. 發現SQL注入時發出蜂鳴聲
    參數:--beep
  5. 啟發式檢測WAF/IPS/IDS保護
    參數:--check-waf
    WAF/IPS/IDS保護可能會對sqlmap造成很大的困擾,如果懷疑目標有防護的話,可以使用此參數來測試,sqlmap將會使用一個不存在的參數來注入測試
  6. 清理sqlmap注入產生的UDF(s)和表
    參數:--cleanup
  7. 禁用彩色輸出
    參數:--disable-coloring
  8. 使用指定的Google結果頁面
    參數:--gpage
    默認sqlmap使用前100個URL地址作為注入測試,結合此選項,可以指定頁面的URL測試
  9. 使用HTTP參數污染
    參數:-hpp
    HTTP參數污染可能會繞過WAF/IPS/IDS保護機制,這個對ASP/IIS與ASP.NET/IIS平臺很有效
  10. 測試WAF/IPS/IDS保護
    參數:--identify-waf
    sqlmap可以嘗試找出WAF/IPS/IDS保護,方便用戶做出繞過方式
  11. 模仿智能手機
    參數:--mobile
  12. 安全的刪除output目錄的文件
    參數:--purge-output
    刪除文件而不被恢復
  13. 啟發式判斷注入
    參數:--smart
    有時對目標非常多的URL進行測試,為節省時間,只對能夠快速判斷為注入的報錯點進行注入
  14. 選擇測試的有效荷載/標題
    參數:--text-filter
    如果你想過濾測試的有效荷載/標題可以使用這個參數
  15. 初級用戶向導參數
    參數:--wizard
    面向初級用戶的參數,可以一步一步教你如何輸入針對目標注入
SQLmap腦圖
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,362評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,577評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,486評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,852評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,600評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,944評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,944評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,108評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,652評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,385評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,616評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,111評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,798評論 3 350
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,205評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,537評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,334評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,570評論 2 379

推薦閱讀更多精彩內容

  • http://192.168.136.131/sqlmap/mysql/get_int.php?id=1 當給sq...
    xuningbo閱讀 10,387評論 2 22
  • sqlmap用戶手冊 說明:本文為轉載,對原文中一些明顯的拼寫錯誤進行修正,并標注對自己有用的信息。 ======...
    wind_飄閱讀 2,077評論 0 5
  • sqlmap也是滲透中常用的一個注入工具,其實在注入工具方面,一個sqlmap就足夠用了,只要你用的熟,秒殺各種工...
    查無此人asdasd閱讀 1,568評論 0 1
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,828評論 18 139
  • 2017/9/5 07:33 高一慧寫于家中 上周最后兩三天的時候就感覺右側的那個曾將讓我腫的發燒,頭昏眼花的智齒...
    高一慧_pq閱讀 463評論 0 1