Просмотр полной версии : Файлы, доступные на чтение всем пользователям в linux
Необходимо проверить linux сервер на наличие уязвимоти выхода за пределы каталога по ../ (а так же mysql load_file).
Какие есть стандартные файлы в linux системах, с высокой вероятностью доступные на чтение всем пользователям?
Logo said:
Необходимо проверить linux сервер на наличие уязвимоти выхода за пределы каталога по ../ (а так же mysql load_file).
Какие есть стандартные файлы в linux системах, с высокой вероятностью доступные на чтение всем пользователям?
load_file проверяется наличием file_priv у текущего пользователя mysql
Я обычно проверяю /etc/passwd и /etc/hosts
Если первый палится WAF, то второй обычно даёт пощупать.
Выход за пределы каталога при load_file обычно проверяю так - пишу любой файл в папку /tmp через into outfile, потом подгружаю его через Load_file. Если всё ок - начинаю искать корневую директорию сайта - а там у каждого своя стратегия.
load_file проверяется наличием file_priv у текущего пользователя mysql
mysql.user не доступна
Выход за пределы каталога при load_file обычно проверяю так - пишу любой файл в папку /tmp через into outfile, потом подгружаю его через Load_file.
Выход за пределы каталога теоретически возможен через скрипт серевера, в load_file в этом нет нужды, ее нужно проверить на доступность.
into outfile судя по всему не доступна, т.к. включены "магические кавычки". Но там, где в качестве параметра к запросу передается число, mysql injection доступна.
/etc/passwd и /etc/hosts
не доступны...
Logo said:
mysql.user не доступна
Выход за пределы каталога теоретически возможен через скрипт серевера, в load_file в этом нет нужды, ее нужно проверить на доступность.
into outfile судя по всему не доступна, т.к. включены "магические кавычки". Но там, где в качестве параметра к запросу передается число, mysql injection доступна.
не доступны...
Ну скорее всего тогда File_Priv=N
Хотя с учётом того, что MQ On могу посоветовать
load_file(0x2f6574632f706173737764)
и
load_file(0x2f6574632f686f737473)
(/etc/passwd и /etc/hosts соответственно)
А по поводу выхода за директорию - я понятия не имею что за скрипт, что он делает. Вариантов куча. Телепаты в отупске(с)
load_file(0x2f6574632f706173737764)
Да, первым делом попробовал получить доступ к /etc/passwd и /etc/hosts через load_file и выход за пределы каталога, но их получить не удается. Либо здесь возможности нет, либо они запрещены на чтение юзеру (и для всех юзеров, в случае load_file).
А по поводу выхода за директорию - я понятия не имею что за скрипт, что он делает. Вариантов куча. Телепаты в отупске(с)
Да я и сам толком не знаю, как оно работает, исходников нет. Возвращает кусок файла с сервера, с - по байт, указанные в запросе.
В MySQL есть служебные переменные, отображающие те места, куда точно должны быть права на чтение.
1. Обычно это логи и темповые папки, однако если сервер не ведет логов, этот ложный путь.
@@tmpdir, @@slave_load_tmpdir - Путь к папке Temp, туда должны быть права на запись, но не всегда.
@@slow_query_log_file - Путь к логу запросов.
@@general_log_file - Ещё один лог
Иногда удобно для закачки и выкачки больших бинарных файлов использовать встроенные функции hex и unhex.
2.
@@datadir - Путь к папке с файлами бд, но файлы из этой папки с помощью load_file прочитать не удасться поскольку как я понял MySQL не дает это делать, но в папки таблиц уж точно должны быть права на запись(создание новых файлов), и их соответственно после создания можно читать, но нужен пропуск кавычек, но его то проверить очень легко.
PHP:
./mysql:
columns_priv.frm help_topic.frm slow_log.CSM
columns_priv.MYD help_topic.MYD slow_log.CSV
columns_priv.MYI help_topic.MYI slow_log.frm
db.frm host.frm tables_priv.frm
db.MYD host.MYD tables_priv.MYD
db.MYI host.MYI tables_priv.MYI
event.frm ndb_binlog_index.frm time_zone.frm
event.MYD ndb_binlog_index.MYD time_zone_leap_second.frm
event.MYI ndb_binlog_index.MYI time_zone_leap_second.MYD
func.frm plugin.frm time_zone_leap_second.MYI
func.MYD plugin.MYD time_zone.MYD
func.MYI plugin.MYI time_zone.MYI
general_log.CSM proc.frm time_zone_name.frm
general_log.CSV proc.MYD time_zone_name.MYD
general_log.frm proc.MYI time_zone_name.MYI
help_category.frm procs_priv.frm time_zone_transition.frm
help_category.MYD procs_priv.MYD time_zone_transition.MYD
help_category.MYI procs_priv.MYI time_zone_transition.MYI
help_keyword.frm proxies_priv.frm time_zone_transition_type.frm
help_keyword.MYD proxies_priv.MYD time_zone_transition_type.MYD
help_keyword.MYI proxies_priv.MYI time_zone_transition_type.MYI
help_relation.frm servers.frm user.frm
help_relation.MYD servers.MYD user.MYD
help_relation.MYI servers.MYI user.MYI
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot