Webhacking.kr 48번 문제를 풀어보장..


48번 문제 클릭!



아래와 같이 메모와 파일 하나를 업로드 할 수 있는 화면이 나오고


몇시에 누가 업로드 했는지 메모가 기록된당



소스보기를 해도 딱히 정보를 얻을 수 없었다



그래서 일단 그냥 Send 버튼을 눌러보았다



아래와 같이 올린 시간과 내 아이디.. 그리고 MEMO에 입력한 MEMO라는 글이 보인다


오른쪽에는 메모를 지울 수 있게 Delete 버튼도 있다


Delete 버튼을 한 번 눌러보았다



mode=del 값과 파일을 올린 시간을 넘겨준다



그럼 내가 올린 MEMO가 지워진다


이번에는 파일과 함께 메모를 입력하여 Send 해보았당



File name이 3글자 이하로 해야하나보당



다시 시도!!



아까와는 다르게 upload file이라는 버튼도 생겼다


한 번 눌러보았다



upload/올린파일명으로 이동되고


null 이라는 값이 보인다


분명 입력한 값은 TEXT라는 문자였는데 null 이라고 한당..이상하당!


이걸 이용하여 어케 하는건가 했지만 아닌가보당



다시 아까 창으로 와서 Delete를 눌러보았땅..



mode=del&time=올린시간



흠 upload/올린파일명으로 파일이 업로드는 되었던걸 (내용은 null이였지만..)


delete 버튼을 누르면 지워준다


delete 버튼을 누르면 rm upload/파일명을 실행해주는거 같다


그래서 rm 명령이 뒤에 다른 명령어를 끼어넣어 보기를 시도했당


리눅스에서 한 줄에 여러 명령어를 실행하기 위해서는 && 이나 ; 을 사용할 수 있다



한 번의 입력으로 여러 명령어가 실행이되는 걸 볼 수 있다


참고로 &&가 ; 의 차이는 ;을 이용하였을 경우에는 앞에 명령어가 성공하든 실패하든 다음 명령어를 실행하지만


&& 을 이용하였을 때는 앞의 명령어가 성공한 경우에만 다음 명령어를 실행한당





그래서 rm upload/올린파일명 이라는 명령을 실행할 것이라 예상하고


파일명을 ;ls 로 넣어보았다 (3글자 제한)



아래와 같이 메모를 입력하였고 이제


Delete 버튼을 눌러보았다



지워보장~



delete가 실행되고 난 후 아래와 같이 처음 페이지에 ls 결과가 같이 나오게 된당...



1.jpg index.php upload 등이 있는데


~~~~admin.php 페이지가 수상하니 한 번 들어가 보자



들어가보면 위와 같이 48번 문제가 클리어 된당


350점 겟!