禁用shell的缓冲区溢出?

时间:2012-12-19 17:01:18

标签: c linux

AFAIK,通过覆盖C变量缓冲区附近的内存来实现缓冲区溢出。这种覆盖用于生成执行命令的shell。

但是,如果运行程序的用户容易受到缓冲区溢出的影响,那么shell会被禁用吗?

/ etc / passwd中:

用户1:X:1000:1000:USER1 ,,,,:/家/ USER1: / bin中/假

sudo -u user1 / usr / bin / programname

2 个答案:

答案 0 :(得分:3)

“禁用外壳”仅在您实际登录时 。如果您正在利用已在运行的程序,则无需登录。

答案 1 :(得分:0)

漏洞利用不使用为用户配置的shell - 它们通常包含二进制代码shellcode,它们在功能上等同于原始shell,这意味着它将启动任何选定的可执行文件 - 例如a真正的shell程序。然后欺骗被利用的程序来执行此代码。

网上有许多不同的shell编码,例如不包含字节'\ 0',因此它们将作为C字符串无损地传递,或者只包含可打印字符,有效的unicode字符串等。< / p>