2014-09-26 2 views
3

셸 쇼크 '취약성 증명'코드 인 다음 코드를 이해하는 데 문제가 있습니다. 누군가 나에게 설명해 줄 수 있습니까? 특히,이 부분 env가하는 일 "() { :;};"누군가 Shell Shock Bash 코드를 설명 할 수 있습니까?

env x='() { :;}; echo vulnerable' bash -c "echo this is a test" 
+0

이것은 쉘 쇼크 코드입니다. 이 주제에 관해 적어도 하나 이상의 질문이있을 수 있습니다. …승인; 내가 생각했던 또 다른 질문은이 것보다 최근이다 ... 이제 [이 껍질 코드가 쉘에서 어떻게 작동하는지 설명 할 수 있을까?] (http://stackoverflow.com/questions/26052189/can-someone-explain-how- this-shellshock-code-works-in-shell)은 이것의 복제본입니다. 정식의 질문이 또 있습니까? –

답변

5

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

? 수정 환경

env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...]

x가 이름/변수가 명확 것을

() { :;}; echo vulnerable'의 문서에서
, env 실행 프로그램은 이제 () { :;}; 무엇 변수

FO 값입니다 ? 함수를 내보낼 때 x='() {:;}' 우리가 간접적으로 새로운 할 수있는 환경에 export x로한다

$ x() {:;} 
$ export x 
$ env | grep x 

를 작성 유사한 수단 때
는 배시

$ x() {echo hello world;} 
$ export x 
$ env | grep x 
x=() {echo hello world}; 

지금 변수 환경 값으로서의 defenition 저장 env
여기 :은 bash의 null 문입니다.

희망 하시겠습니까?

관련 문제