透過管道傳輸到「echo」的「find」可以用來造成巨大傷害嗎?

透過管道傳輸到「echo」的「find」可以用來造成巨大傷害嗎?

我目前正在參加 Google 網路安全 coursera 證書課程。我現在在 Linux 部分學習一些 Linux 命令,我對它完全陌生,但我想知道一件事。在我學習的過程中,我總是嘗試思考防禦者或攻擊者如何使用所述命令,最近我了解了echo >命令以及它如何覆蓋所有內容。我確實檢查過它可以被惡意使用,但當然我並不完全理解它。

我的問題是,假設攻擊者可以訪問某人的計算機,並希望快速對用戶造成一些損害,因為他知道他擁有許多.txt文件。這個指令有用嗎?

find /home/ -name "*.txt*" | echo "gg" > "*.txt*"

只是想知道我是否理解正確。這基本上會創建一個命令來查找.txt下面的所有文件/home/,然後echo用管道覆蓋所有.txt帶有單字的文件gg嗎?

如果不是,為什麼它不能正常工作?我想了解為什麼它不能幫助我更好地理解它,如果這個想法在技術上可行但命令寫錯了,請讓我知道哪一部分是錯的。

答案1

它不會工作:echo不從管道接收參數。find將找到所有.txt文件並將其通過管道傳輸到echo.但echo會忽略它並只是輸出gg

>*.txt*如果您有權限,重定向只會嘗試將其寫入名為的檔案中。如果存在則覆蓋,不存在則建立。

答案2

由於 ThoriumBR 已經解釋過的原因,這是行不通的。

你正在尋找類似的東西

shopt -s globstar
for file in **/*.txt
do
    echo "rr" > "$file"
done

或者

find . -name "*.txt" -print0 | while read -d $'\0' file
do
    echo "rr" > "$file"
done

相關內容