System&Write up/Pwnable.kr

[pwnable.kr] Toddler's Bottle - cmd1

Jubil 2017. 12. 17. 02:47
반응형

[pwnable.kr] Toddler’s Bottle – cmd1

 


 


 


 

환경 변수를 이용하는 문제인 것 같다. system에 사용자의 입력을 인자로 전달해서 실행하는데, flag, sh, tmp가 있으면 안 됩니다.

 

 


 

일단 환경 변수 PATH가 바뀌었으니 절대 경로로 입력해야 합니다. flag도 우회해야 하는데, 그냥 환경 변수에 “/bin/cat /home/cmd1/flag” 문자열을 넣고 환경 변수를 인자로 전달하면 될 것 같습니다.

 

 


 

좋습니다. 환경 변수에 문자열이 저장되었으니, 이제 전달해야 합니다.

 


 

백 쿼터로 묶으면, 실행한 후 출력 값을 넣기 때문에 원하는 결과가 나오지 않습니다.

 


 

싱글 쿼터로 묶으면, 문자열 자체가 들어가기 때문에 flag가 출력됩니다.

 

 

그리고 쉘의 와일드카드로 쉽게 flag를 출력할 수도 있습니다. 필터링은 flag, sh, tmp만 하기 때문에, ‘fla? -> fla로 시작하고 마지막에 한 자리 다른 문자(공백도 O)가 있음과 같은 표현식으로 flag라는 문자열을 우회해서 풀 수 있습니다.

 


반응형