본문 바로가기

WarGame/webhacking.kr

[webhacking.kr] Challenge 48 :: Command Injection 1


▼ 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 명령어가 실행됩니다.