通过执行mount命令在Android中执行命令注入

时间:2014-02-14 08:34:26

标签: android

我正在尝试执行此代码

    Process process = new ProcessBuilder().command("mount").start();
        process.waitFor();

查找SD卡位置,然后检查它是否由vold管理,以及文件系统是否为vfat。

我的问题是,无论如何,这段代码可能会被混淆并成为Android中命令注入的候选者。

我身边的情侣点。

它不是用户输入,因此在这种情况下不会有命令注入。是否可以更改整个Android OS环境,以便可以使用mount命令?

欢呼声, Saurav


ok ...目前我正在读取/ proc / mounts替换mount命令。

这是一个很好的方法。

此解决方案的参考 http://renzhi.ca/2012/02/03/how-to-list-all-sd-cards-on-android/ How can I get the list of mounted external storage of android device

下面的代码

reader = new BufferedReader(new FileReader("/proc/mounts"));
        String line;
        while ((line = reader.readLine()) != null) {
            // Output the line of output from the mount command
            logger.debug("   {}", line);

            if (line.startsWith("/dev/block/vold/")) {

如果这是正确的做法并且没有任何安全问题,任何人都可以请。

欢呼声, Saurav

1 个答案:

答案 0 :(得分:1)

正如你所说,只要你没有任何用户输入,你就可以安全地进行这种注射。

唯一可能遇到麻烦的情况是mount二进制文件是否已被某些恶意二进制文件替换。要遇到这种情况,用户必须已使设备生根并用自定义ROM替换操作系统。

我认为您可以假设mount命令应该正常运行。