回答
您可以使用此
setuid(0);
system("/path/to/script.sh");
其中path to腳本是在你的應用程序的腳本,將安裝文件
或
setuid(0);
system("cmd");
其中cmd是命令,如
setuid(0); system("echo Hello World");
您也可以通過這種方式登錄到/tmp
目錄或任何其他地方。
setuid(0); system("echo Hello World >> /tmp/install.log");
setuid (0);
給它的root訪問權限和system (cmd);
是實際的命令
要小心你如何使用它作爲根有無處不在的訪問。
切勿使用帶setuid的系統!例如,如果有惡意的人將PATH
更改爲/tmp:$PATH
,並且此人將他們自己的程序添加到/ tmp並將其命名爲「ls」,那麼即使運行此簡單代碼也會讓他們能夠訪問您的設備:
setuid(0); system("ls");
相反,您應該使用exec系列函數,但不使用execvp/execlp。
解決這個問題的另一種方法是完全限定你傳遞給'system()'的命令,比如'/bin/ls'而不是'ls'。 – Nate 2013-03-12 01:23:44
@Nate:不完全。 'export IFS = /' – C0deH4cker 2013-03-12 02:55:54
如果你聲稱'export IFS = /'會將'/ bin/ls'命令轉換成'bin ls',它可以運行一個名爲'bin'的惡意腳本放在PATH的某個地方不,它不會。我在越獄的iPhone上嘗試過。還試着'導出IFS ='/''。這是一個非常古老的漏洞,它看起來像越獄的iOS外殼已經修復。 – Nate 2013-03-12 04:14:02
- 1. 需要幫助Cydia應用程序根權限
- 2. 給django應用程序根權限?
- 3. Cydia應用程序部署在Cydia Appstore
- 4. 授予iPhone應用程序根權限
- 5. 根權限凍結android應用程序
- 6. 給Android應用程序的根訪問權限
- 7. 如何修復我的Cydia應用程序的用戶目錄權限?
- 8. 紮根電話:應用程序有根權限
- 9. Java應用程序權限
- 10. 應用程序權限
- 11. 應用程序的權限
- 12. 給程序寫權限
- 13. Android應用和根權限
- 14. Android應用根權限?
- 15. 從appcelarator發佈應用程序到cydia?
- 16. 讓應用程序在cydia私人?
- 17. 爲Cydia開發應用程序
- 18. Cydia Repo的應用程序故障
- 19. iOS應用程序在Cydia和AppStore
- 20. 如何授予用戶應用程序的根訪問權限?
- 21. android應用程序根目錄或系統權限
- 22. 應用程序/用戶權限問題
- 23. 我如何給我的Android應用程序提供root權限?
- 24. 如何給Linux應用程序提供root權限
- 25. 如何在運行時給予應用程序管理權限?
- 26. Cydia應用程序版本在更新和應用程序本身是相同的,但Cydia要求更新
- 27. 檢查iOS應用程序權限。發佈應用程序
- 28. ios應用程序權限被拒絕更新應用程序
- 29. Android應用程序的Facebook應用程序權限
- 30. 應用程序被拒絕,健康應用程序權限
看看[這個答案也是](http://stackoverflow.com/a/8796556/119114) – Nate 2013-03-12 01:26:37