Re: чтение чужих файлов.

Maxim Dounin mdounin на mdounin.ru
Пт Ноя 25 12:16:49 UTC 2011


Hello!

On Fri, Nov 25, 2011 at 02:58:48PM +0400, Alexandre Snarskii wrote:

> On Fri, Nov 25, 2011 at 02:29:28PM +0400, Igor Sysoev wrote:
> > 
> > > PS: от атаки на хардлинках это по любому не защищает.
> > 
> > Для создания хардлинка в отличие от симлинка нужны права.
> > Никто не мешает в этом случае просто прочитать нужные файлы.
> 
> snar at chumadan:~/public_html>ls -la /usr/local/etc/sasldb2.db 
> -rw-r-----  1 cyrus  mail  16384 27 сен 11:25 /usr/local/etc/sasldb2.db
> snar at chumadan:~/public_html>id 
> uid=1001(snar) gid=20(staff) groups=20(staff),0(wheel)
> snar at chumadan:~/public_html>cat /usr/local/etc/sasldb2.db
> cat: /usr/local/etc/sasldb2.db: Permission denied
> snar at chumadan:~/public_html>ln /usr/local/etc/sasldb2.db image.jpg
> snar at chumadan:~/public_html>ls -la image.jpg 
> -rw-r-----  2 cyrus  mail  16384 Sep 27 11:25 image.jpg
> snar at chumadan:~/public_html>cat image.jpg 
> cat: image.jpg: Permission denied
> 
> i.e., у меня прав на чтение этого файла как не было так и нет,
> но (в контексте атаки) nginx этот файл прочитать и выдать сможет. 
> 
> FreeBSD 8.2-STABLE i386

http://pubs.opengroup.org/onlinepubs/9699919799/functions/link.html

...
The implementation may require that the calling process has 
permission to access the existing file.
...

[EACCES]
A component of either path prefix denies search permission, or the 
requested link requires writing in a directory that denies write 
permission, or the calling process does not have permission to 
access the existing file and this is required by the 
implementation.

В общем случае - нужно отбирать search permissions на path prefix.

Maxim Dounin



Подробная информация о списке рассылки nginx-ru