기본적인 shellshock에 대한 문제이다.
shellshock 취약점은 기존 쉘에서 쉘을 다시 호출 할 경우 환경변수를 로딩하면서 생기는 취약점이다. (아마도)
export로 환경변수를 설정할 때
1 | export x='() { echo test; }' | cs |
로 설정해주면 x는 함수가 아니라 문자열로 인식된다.
이때 다시 쉘을 호출하게 되면 문자열을 둘러싸던 ''가 사라지면서 함수의 형태가 된다.
1 | x= () { echo test; } | cs |
근데 초반에 환경변수 설정을
1 | export x='() { echo test; }; /bin/cat flag' | cs |
로 해주었을 경우
다시 쉘을 호출하게 되면 환경변수 x가 함수가 되는 동시에
뒤에 붙어있는 /bin/cat flag 부분이 실행된다.
이때 호출되는 쉘의 권한이 root권한이면 flag를 읽을 수 있게 된다.
위의 설명은 구글링으로 얻은 나의 이해를 토대로한 설명이기 때문에 믿지 않는 것이 좋다.
exploit
'정보보안 > pwnable.kr' 카테고리의 다른 글
[pwnable.kr] simple login (0) | 2018.11.15 |
---|---|
[pwnable.kr] mistake (0) | 2018.11.08 |
[pwnable.kr] leg (0) | 2018.11.08 |
[pwnable.kr] input (0) | 2018.11.08 |
[pwnable.kr] random (0) | 2018.11.08 |