Как делают я отправляю, ДОБИРАЮТСЯ и запросы POST с помощью Завихрения?

Как делают я отправляю, ДОБИРАЮТСЯ и запросы POST с параметром gimmeflag и значение please к URL http://103.200.7.150:7777/ использование curl на командной строке?

1
задан 24 November 2017 в 22:39

3 ответа

Походит на Вас после учебного руководства или книги, и это - развязный способ протестировать, если Вы свалили основы.

Вызов http://103.200.7.150:7777/ через завихрение или браузер приводит к следующему выводу:

Отправьте меня, метод запроса ПОЛУЧАЕТ и POST с параметрическими усилителями "gimmeflag" и оценивает

Давайте разломаем его на две части, так как Вы хотите знать как поконченные curl (см. man 1 curl или вихревое руководство).

Используя ДОБИРАЮТСЯ для отправления запроса:

Этот довольно легок, если Вы знаете как a query-string похож.

Во Всемирной паутине строка запроса является частью унифицированного указателя ресурсов (URL), содержащего данные, которые не соответствуют удобно иерархической структуре пути. Строка запроса обычно включает поля, добавленные к базовому URL веб-браузером или другим клиентским приложением, например, как часть HTML-формы.

Веб-сервер может обработать запрос Протокола передачи гипертекста или путем чтения файла из его файловой системы на основе пути URL или путем обрабатывания запроса с помощью логики, которая характерна для типа ресурса. В случаях, где специальная логика вызывается, строка запроса будет доступна той логике для использования в ее обработке, наряду с компонентом контура URL. (источник)

Вы хотите отправить параметр gimmeflag и значение please. Так строка Вы хотите запросить с curl :

curl -X GET http://103.200.7.150:7777/?gimmeflag=please

Результат Вы возвращаетесь из сервера:

KSL {n0w_y0u_Know_How_To

Используя POST для отправления запроса:

Данный ПОЛУЧИТЬ строку POST довольно легок, слишком просто заменяют, ДОБИРАЮТСЯ POST:

curl -X POST http://103.200.7.150:7777/?gimmeflag=please

Результат Вы возвращаетесь из сервера:

_S3nD_r3quesT_Meth0d_GET_AND_POST}

Завершить это:

# Thanks to @pa4080 for this line
printf '%s%s\n' \
"$(curl -X GET http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \
"$(curl -X POST http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)"

KSL {n0w_y0u_Know_How_To_S3nD_r3quesT_Meth0d_GET_AND_POST}

5
ответ дан 3 December 2019 в 06:22

Этот ответ показывает путь, как мог быть достигнут результаты ответа @Videonauth, но с wget:

$ wget -qO- http://103.200.7.150:7777/ 
Please send me request method GET and POST with params "gimmeflag" and value "please"
$ wget -qO- http://103.200.7.150:7777/?gimmeflag=please # GET is the default request
KSL{n0w_y0u_Know_How_To
$ wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please # Simple POST req.
_S3nD_r3quesT_Meth0d_GET_AND_POST}
$ printf '\n%s%s\n' \
"$(wget -qO- http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)" \
"$(wget -qO- --post-data '' http://103.200.7.150:7777/?gimmeflag=please 2>/dev/null)"

KSL{n0w_y0u_Know_How_To_S3nD_r3quesT_Meth0d_GET_AND_POST}

От man wget:

-O file; --output-document=file - The documents will not be written to the appropriate 
     files, but all will be concatenated together and written to file. If '-' is used 
     as file, documents will be printed to standard output, disabling link conversion...

-q; --quiet - Turn off Wget's output.

--post-data=string; --post-file=file - Use POST as the method for all HTTP requests 
     and send the specified data in the request body. --post-data sends string as data, 
     whereas --post-file sends the contents of file. Other than that, they work in 
     exactly the same way. In particular, they both expect content of the form 
     "key1=value1&key2=value2", with percent-encoding for special characters... 
     Only one of --post-data and --post-file should be specified... This example shows 
     how to log in to a server using POST and then proceed to download the desired pages, 
     presumably only accessible to authorized users:

         # Log in to the server.  This can be done only once.
         wget --save-cookies cookies.txt --post-data 'user=foo&password=bar' \
         http://example.com/auth.php
2
ответ дан 3 December 2019 в 06:22

Я отвечаю здесь, потому что у меня нет достаточного количества представителя для комментария. Существует два ответа, и наиболее проголосовавший ответ не знает работы протокола HTTP.

Данные POST перемещаются в теле полезной нагрузки HTTP, не в URL. Строка запроса в URL является просто приемом для отправки, канавка данных ДОБИРАЮТСЯ, который не является действием, сделанным для регистрации данных (ДОБЕРИТЕСЬ, и POST сам объяснительные).

Корректный способ использовать завихрение с POST был бы:

curl -X POST -d "gimmeflag=please" http://103.200.7.150:7777/

Если Вы тестируете сценарий, реализованный на языке, где ДОБИРАЮТСЯ, и переменные POST разделяются, curl -X POST http://103.200.7.150:7777/?gimmeflag=please сохранит переменные, где ДОБИРАЮТСЯ, переменные найдены.

1
ответ дан 3 December 2019 в 06:22

Другие вопросы по тегам:

Похожие вопросы: