Я пытался использовать утечку пропускной способности для программы на C (см. Ниже), воспользовавшись отсутствием функции fclose()
для файла, который программа открыла ранее.
Короче говоря, эксплуатация включала следующую команду
sudo echo some_random_string >&3
Дело в том, что я запускаю ту же команду, используя также >&2
, >&1
и >&0
(stdin, stdout, stderr).
Мой компьютер отстает с тех пор (например, щелчок мышью не работает в браузере время от времени)
Есть идеи о том, что происходит?
Программа на C является следующим:
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
void main() {
int fd;
char *v[2];
fd = open("/etc/zzz", O_RDWR | O_APPEND);
if ( fd == -1 ) {
printf("Cannot open /etc/zzz\n");
exit(0);
}
printf("fd is %d\n", fd);
setuid(getuid());
v[0] = "\\bin\\sh";
v[1] = 0;
execve(v[0], v, 0);
}