▼ Challenge 48은 다음과 같습니다.
[upload file]을 클릭하면 "null" 밖에 안나오고, [Delete]를 클릭하면 시스템의 시간을 이용해서 파일을 삭제하고 있습니다.
"이것을 이용하여, 다른 MEMO도 모두 삭제하면 되는가?" 라고 생각했지만, 삭제가 되지 않습니다.
파일명을 3글자로 제한해 놓은 것을 보니, 이 곳이 Point 인 것 같습니다.
파일명 하면... 여러가지가 떠오르지만 이번 문제는 Command Injection에 대한 문제입니다.
▼ 예를 들어, 다음과 같은 파일을 읽는 Query가 있다고 가정해 봅시다.
?file=test.txt
▼ 이것을 다음과 같이 변경하면 OS Command를 실행할 수 있습니다.
?file=text.txt;cat /etc/passwd
이런 취약점을 이용하여, 실제 문제에서 여러가지 시도를 해본 결과,
▼ 다음과 같은 방법을 알아냈습니다.
문제에서 [Delete]를 클릭하면 실제 OS에서는 "rm [파일명]"이라는 명령어가 실행이 되고, 공격자가 파일명을 ";ls"라고 올린다면,
실제 명령어는 "rm;ls"가 되어 ls 명령어가 실행됩니다.
'WarGame > webhacking.kr' 카테고리의 다른 글
[webhacking.kr] Challenge 29 :: SQL Injection (subquery) (0) | 2015.12.08 |
---|---|
[webhacking.kr] Challenge 53 :: SQL Injection (procedure analyse() 함수) (0) | 2015.12.08 |
[webhacking.kr] Challenge 35 :: SQL Injection (Multi-Records 삽입) (0) | 2015.12.06 |
[webhacking.kr] Challenge 08 :: SQL Injection (Multi-Records 삽입) (0) | 2015.12.05 |
[webhacking.kr] Challenge 03 :: SQL Injection (Hidden Field) (0) | 2015.12.05 |