뉴비에욤

Webhacking.kr 44번 본문

Webhacking.kr

Webhacking.kr 44번

초보에욤 2015. 8. 16. 21:38

우선 44번 문제는 "Command Injection" 문제인 것을 기억하자. 

 

 

 

name 입력창에 "wraith" 입력하면 끝에 'h'가 잘린다. (5글자까지 입력 가능)

그리고 "Make" 버튼을 누르면 "hello wrait" 가 나타난다.

 

아마 입력받은 값과 "echo" 명령어를 합쳐서 다시 출력해주는 것으로 추정된다.

root@shell:# echo "test"

 

일반적으로 리눅스에서 어떤 명령어 뒤에 ';' 를 입력하고 또 다른 명령어를 입력하면 명령어가

2번 실행된다.

root@shell:# ls;ls

- 이렇게 "ls;ls"를 입력하면 "ls" 명령어가 2번 실행됨

 

 

";ls"를 입력하면 아무것도 출력되지 않는다.

 

 

 

";test"를 입력하면 test가 출력된다.

아마 ';', "ls" 문자열을 필터링 하고 있는 것이다.

 

 

"ls" 명령어가 필터링 되고 있으니 ls 역활을 하는 다른 명령어를 입력해야 한다.

재밌는 것은 리눅스에서 명령어를 입력할 때 싱글 쿼테이션 (') 문자 사이에입력해도 인식이 된다는

것이다. 실제로 위 사진에서는 (ls) 와 (l's') 명령어가 동일하게 인식되어 같은 결과를 보여준다.

 

 

그리고 명령어를 연속으로 실행하는 것도 몇 가지 방법이 존재한다.

첫 번째 방법은 세미콜론(;)을 사용하는 것이고, 두 번째 방법은 엠퍼센트(&)를 사용하는 것이다.

 

 

이전 사진들에서 보았던 명령어 실행 방법들을 적절히 섞어서 위 사진과 같이 ('&l's) 를 입력한다.

세미콜론(;) 필터링을 엠퍼센트(&)로 우회하고, (ls) 필터링을 (l's) 로 우회한다.

 

 

 

('&l's) 를 입력하면 ls 명령어가 실행되서 해당 경로에 있는 모든 파일이 나타난다.

 

 

'Webhacking.kr' 카테고리의 다른 글

Webhacking.kr 46번  (0) 2015.08.16
Webhacking.kr 45번  (0) 2015.08.16
Webhacking.kr 43번  (0) 2015.08.16
Webhacking.kr 42번  (0) 2015.08.16
Webhacking.kr 41번  (0) 2015.08.16
Comments