뉴비에욤
Webhacking.kr 44번 본문
우선 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 |