Часто после обнаружения инъекции атакующий хочет веб-шелл.

Ну вот хочется человеку, что поделаешь

Столкнулся с интересной реализацией, которой и хочу поделиться с миром.

За что все любят INTO? за то, что его можно писать после WHERE и это работает!

В конкретном примере мне надо было в среде винды пробиться к веб-шеллу, имея инъекцию и права на запись файлов от пользователя БД.

Инъекция была в поисковом запросе и показывала контент сайта. Недолго порыскав, нашел что можно изменить в контенте без фильтрации таких нужных символов как

Оставалось только сохранить в файл onsec.php нужный код, он не тут-то было.

Возникли две проблемы:

1. Фильтр на входе параметров движка наглухо резал слово PHP и две точки (..) во всех их проявлениях.

2. Абсолютный путь к веб-серверу содержал пробел (C:\Program Files\ :) ), что не проходило для установленного Mysql.

Первая проблема решилась после чтения дефолтового конфига апача:

AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps

Как видно, все очень просто exploit.phtml и точка.

Вторую проблему я пытался сначала решить через стандартные переменные окружения типа %PROGRAMFILES%, оказалось, Mysql такого не понимает.

Но вспомнив про второе имя любой папки, сделал PROGRA~1 и получил нужный мне путь

Таким образом, шелл был получен.

Мораль сей басни – расширяйте кругозор и маски фильтров.

‘ or 5=5 и phtml решают ;)