为什么访问 /proc/pid/mem 不是安全漏洞?

为什么访问 /proc/pid/mem 不是安全漏洞?

我已经玩过一些/proc/pid/mem/proc/pid/maps。我编写了一个简单的 C 程序,它只是定期从变量读取(其地址写入标准输出),并且我能够使用dd.

#include <stdio.h>
#include <unistd.h>

int main() {
    pid_t pid = getpid();
    int value = 5;

    do {
        printf("value: %d\naddress: %p\npid: %d\n", value, &value, pid);
    } while (getchar() != -1);

    return 0;
}

echo '0x2a000000' | xxd -p -r | dd of=/proc/$PID/mem bs=1 seek=$((ADDR)) count=4 conv=notrunc

当我在第一个程序中按 Enter 键时,该值会更新为 42。

所以我的问题是,为什么这不是问题?我什至没有root权限。如果我在计算机上安装了恶意软件,它就可以读取/写入任何程序的内存。

即使您不知道变量的确切地址,您仍然可以使用 的地址打印出整个堆栈和堆/proc/pid/maps

相关内容