• XSS.stack #1 – первый литературный журнал от юзеров форума

Выполнить команду на сервер. PHP шелл.

k0d

RAM
Пользователь
Регистрация
17.01.2023
Сообщения
111
Реакции
96
Всем привет.
Нужно выполнить пару команд на сервере, все самые простые способы заблочены.

Код:
WEB SERVER : nginx/1.20.1
PHP VERSION : 8.1.31
DISABLE FUNC: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL: ✅ | Postgresql: ✅ | Redis: ❌

Есть ли какой-то обходной путь?
 
<?php
// Проверить, что доступно:
$functions = [
'mail', 'imap_open', 'ffi', 'expect_popen',
'pcntl_exec', 'file_get_contents', 'curl_exec'
];

foreach($functions as $func) {
if(function_exists($func)) {
echo "Доступна: $func\n";
}
}

// Проверить wrappers:
$wrappers = stream_get_wrappers();
print_r($wrappers);
?>
<?php
// Очень мощный обход!
// imap_open может выполнить команды через mailbox name
$exploit = imap_open('{localhost:11111/imap}INBOX",cmd,"', '', '');
// Или так:
$exploit = imap_open('//bin/sh|-c|"id;exit">/tmp/cmdout', '', ''

<?php
// Попробуй это:
if(function_exists('imap_open')) {
$exploit = imap_open('/tmp/nonexistent",bash -c "whoami > /tmp/result", "', '', '');
}
?>
 
C2flow Почти все из твоего списка, что могло реально помочь отключено ('ffi', 'expect_popen', 'pcntl_exec').
Это вообще глюки ИИ ('file_get_contents', 'curl_exec') как с их помощью исполнить команду?
Спасибо за попытку )
 
Последнее редактирование:
Я не пользуюсь ИИ. Но если эти методы ге работают значит проблемы в твоих руках
Нормально ты итог подвел 🤣. 100 из 100 должно работать?
 
Всем привет.
Нужно выполнить пару команд на сервере, все самые простые способы заблочены.

Код:
WEB SERVER : nginx/1.20.1
PHP VERSION : 8.1.31
DISABLE FUNC: exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
MySQL: ✅ | Postgresql: ✅ | Redis: ❌

Есть ли какой-то обходной путь?
Тут наверное стоит задаться мыслёй "а как оно у них вообще работает если столько ограничений понавтыкано?" , а точнее даже "что оно делает того, чего ему всё таки можно легально делать?"
Может что-то можно прочесть критичного? Или куда-то писануть? Или куда-то законнектиться и что-то подтащить или наоборот передать?
То есть "границы дозволенного" надо прощупывать, как дети и подростки у родителей.
 
Тут наверное стоит задаться мыслёй "а как оно у них вообще работает если столько ограничений понавтыкано?" , а точнее даже "что оно делает того, чего ему всё таки можно легально делать?"
Может что-то можно прочесть критичного? Или куда-то писануть? Или куда-то законнектиться и что-то подтащить или наоборот передать?
То есть "границы дозволенного" надо прощупывать, как дети и подростки у родителей.
Он кстати прав, если есть вебшелл то есть и файл с конфигом как минимум от бд, а пароли от бд стоит потыкать в фтп ссх или что там еще есть, у меня было так что на миллионнике шопе пароль от бд влез в рутовый ссх
 
Подскажи плз как через select loadfile команду выполнить?
Если у тебя скуля в мапе пишешь --sql-shell открывается шелл и туда SELECT LOAD_FILE('/etc/passwd');
Если у тебя админер и тд и тп туда же где там исполняются скл команды пишешь SELECT LOAD_FILE('/etc/passwd');
И у тебя прочтется выбранный файл. Путь в корень можно определить перебором по конечному index.php или robots.txt, посмотрев phpinfo, вызвав ошибку в php и в корне обычно лежит config.php или dbcon.php db_con.php
Работает только при наличии привилегий, с одним USAGE не сработает.
 
Подскажи плз как через select loadfile команду выполнить?
а, если ты прям про рсе то никак. для такого есть into outfile или into dumpfile, не помню. лоадфайлом можно пароли поискать и потыкать. вообще просто запусти --os-sshell -v 3 в склмапе и посмотри в логах чо оно отправляет
 
у меня было так что на миллионнике шопе пароль от бд влез в рутовый ссх
ну да, мамонтятки которые любят один пароль на всё-всё ставить обычно про RSA/DSA/ECDSA ключики они не ведают даже что это такое равно как и про 2FA
 
если есть вебшелл
у него как раз с вебшеллом проблемы - функции под запретом, причём как-то дофига чего под запретом
однако раз есть возможность свой PHP код хоть как-то заинклюдить в ихний PHP код (а лучше тупо eval сразу - его вроде в списке запретов нет) и выполнить скрипт - то чо бы средствами (функциями) PHP то не побаловать?
я бы начал с банального phpinfo(); вызова там будет уйма инфы от ядра ОС до уже установленных модулей PHP, ну и далее по ситуации.
 
у него как раз с вебшеллом проблемы - функции под запретом, причём как-то дофига чего под запретом
однако раз есть возможность свой PHP код хоть как-то заинклюдить в ихний PHP код (а лучше тупо eval сразу - его вроде в списке запретов нет) и выполнить скрипт - то чо бы средствами (функциями) PHP то не побаловать?
я бы начал с банального phpinfo(); вызова там будет уйма инфы от ядра ОС до уже установленных модулей PHP, ну и далее по ситуации.
С шеллом проблем нет, он залит, доступ к директории с сайтом есть, к бд доступ есть.
Проблема именно с выполнениями команд.
 
С шеллом проблем нет, он залит, доступ к директории с сайтом есть, к бд доступ есть.
Проблема именно с выполнениями команд.
Это как? Шелл типа есть, но команды типа id или whoami не выполняются? А что пишет какую ошибку?
 
Это как? Шелл типа есть, но команды типа id или whoami не выполняются? А что пишет какую ошибку?
В этом и проблема, как выполнить whoami(это просто для примера, как средствами php юзера знаю) если все методы выполнения команд запрещены?
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх