bash漏洞復現(xiàn)的示例分析

bourne again shell(簡稱bash)是在gnu/linux上最流行的shell實現(xiàn),于1980年誕生,經(jīng)過了幾十年的進化從一個簡單的終端命令行解釋器演變成了和gnu系統(tǒng)深度整合的多功能接口

Bash,unix shell的一種。1989年發(fā)布第一個正式版本,原先是計劃用在GNU操作系統(tǒng)上,但能運行于大多數(shù)類Unix系統(tǒng)的操作系統(tǒng)之上,包括Linux與Mac OS X v10.4都將它作為默認shell。它也被移植到microsoft windows上的Cygwin與MinGW,或是可以在MS-DOS上使用的DJGPP項目。在Novell NetWare與android上也有移植。

目前的Bash使用的環(huán)境變量是通過函數(shù)名稱來調(diào)用的,導致漏洞出問題的是以”(){”開頭定義的環(huán)境變量在命令ENV中解析成函數(shù)后,Bash執(zhí)行未退出,而是繼續(xù)解析并執(zhí)行shell命令,而其核心的原因在于在輸入的過濾中沒有嚴格限制邊界,也沒有做出合法化的參數(shù)判斷。

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

1.漏洞環(huán)境

鏈接:http://192.168.101.152:8080/victim.cgi

bash漏洞復現(xiàn)的示例分析

2.漏洞payload

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

理論上,可以在HTTP請求中注入一個Bash命令,進行遠程命令執(zhí)行

3.利用流程

訪問目標

bash漏洞復現(xiàn)的示例分析

將User-Agent值替換為payload,即可執(zhí)行命令

bash漏洞復現(xiàn)的示例分析

User-Agent并非必須條件

bash漏洞復現(xiàn)的示例分析

<br/>

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊7 分享