關於 Web 安全的「貼上板命令注入攻擊」,能意識到安全風險的不多

1。 前言

關於 Web 安全的「貼上板安全」,能意識到安全風險的人並不多。大多數人認為這只是隱私安全,最多洩露當前複製的內容而已。或者就是用於一些小花招,例如自動複製淘口令然後喚起手淘這種惡意行為。

事實上,貼上板安全是非常重要的 —— 尤其是我們這些經常上網查資料的人。稍有不慎,系統都會被入侵!

2。 所見非所得

有沒有想過,當你選中一段文字複製後,粘貼出來的卻是不同的內容?

你肯定不希望這樣,但你一定遇到過。比如複製某帖子的時候,末尾會加上「出自作者 XXX」這種煩人的內容。

從技術上說,實現這種效果很容易。但是,你有沒有從安全形度考慮過這個問題?

比如,你從 Stack Overflow 上搜到的答案是

ping google。com

,一條人畜無害的命令,結果粘貼出來的卻是

sudo rm -rf /

,你看都沒看就敲下了回車。。。

也許你會說,正規的網站怎麼可能會開這種玩笑。但是,你能保證網站不出現 XSS 嗎?

也許你會說,我是一個仔細的人,命令粘貼後都會檢查下再執行。但是,這仍然晚了。。。

3。 貼上即執行

眾所周知,貼上多行命令時,Shell 會自動執行換行符前面的。例如:

echo 1echo 2

當你將其貼上到終端後,echo 1 已自動執行,敲下回車只是執行 echo 2 而已。

因此 XSS 完全可以將惡意命令放在第一行。你一貼上,它就自動執行了!

以後你還敢從網上隨意複製貼上命令嗎?

也許你在想,發現破綻後馬上 ctrl c 來得及嗎。來不及了,惡意命令完全可在後臺執行,等你找到的時候說不定木馬已經安裝好了。

甚至,你可能根本都沒發現破綻。。。

4。 隱蔽執行

為了讓惡意命令不留下痕跡,還可以在執行後再 clear。如果終端之前沒內容,你只是覺得螢幕好像閃了一下。如果之前有內容,現在一貼上突然變沒了,也許你會覺得奇怪,但你會不會深究?

也許你會調出上一個命令,或透過 history 看究竟執行了什麼。但是,惡意命令完全可以刪掉歷史記錄,讓你無從查證。

更進一步,惡意程式可將貼上板修改成正常內容,你去其他地方貼上看到的仍是預期內容。甚至,惡意程式還可以給網頁裡的 XSS 傳送命令,讓它以後不再劫持你了,讓你一時半會都復現不出來!(當然,貼上到遠端伺服器 ssh 的話無視這一步)

5。 結論

從網上覆制貼上命令風險很大。最好先貼上到記事本里檢查一下,然後再貼上到終端裡執行。