PHP $_POST에 해당하는 쉘 스크립트

PHP $_POST에 해당하는 쉘 스크립트

POST예를 들어 학습 목적으로 텍스트 필드를 제출하는 방법을 사용하는 웹 페이지가 있습니다 . 스크립트(bash)를 실행하는 서버가 있고 "Query_string"이 무엇인지 표시하고 싶습니다. 나 역시 PHP에 대해 잘 알지는 못하지만, $_POST제출된 텍스트를 인쇄하는 데 사용될 것이라고 가정합니다. 제가 사용하는 스크립트는 bash입니다. 제출된 텍스트를 인쇄하려면 무엇을 사용할 수 있나요?

답변1

첫 번째 의견에서 지적했듯이 CGI 사양에서는 POST 데이터가 표준 입력에 있고 형식 지정 enctype을 사용하여 인코딩된다고 나와 있습니다. 그러나 모든 메소드가 지원되어야 합니다: multipart/form-data, application/x-www-form-urlencodedHTML5'stext/plain

다음은 사용할 수 있는 매우 빠른 테스트 스크립트입니다.

#!/bin/sh
echo Content-type: text/plain
echo
echo Environment
printenv

echo POST contents
cat

CONTENT_TYPE 변수는 데이터에서 사용되는 방법으로 설정됩니다.

그렇다면 application/x-www-form-urlencoded고전적인 key=value&key=value 구문이 표시되며 URL 이스케이프를 기억해야 합니다.

그렇다면 multipart/form-data이는 MIME이며 MIME 파서를 대상으로 하는 이전 공격이 있었다는 점을 알아야 합니다.

새로운 HTML5라면 text/plainstdin에서 전체 입력을 그대로 가져오세요. 이 방법은 양식 제출이 아닌 파일 업로드를 위한 것입니다. URL이나 MIME을 디코딩하지 않고도 stdin 파일 설명자를 다른 프로세스에 안전하게 제공할 수 있습니다.

나는 다른 사람들의 경고에 응답하고 싶습니다. Shellshock에 대한 패치가 적용되지 않은 경우 공격자가 CGI를 실행하도록 허용하는 것만으로도 시스템을 악용할 수 있습니다(공격자가 해야 할 일은 일반적인 셸 명령을 모두 재정의하는 것뿐이며 사용자가 사용하는 명령을 확실히 찾을 것입니다). .

관련 정보