Memo의 input태그에 내용을 채우고 파일을 선택하고 업로드시 해당하는 POST 요청의 패킷값
파일 Delete 시 패킷
- SQL 인젝션이나 XSS공격은 통하지 않음
- php문을 업로드하고 실행하면 실행이 될까 싶어서 업로드 후 접근해보았으나
위의 사진대로 text로만 나오고 서버 사이드 스크립트가 실행이 되지가 않는다.
- 파일을 업로드하고 Delete를 누르면 파일과 메모가 같이 삭제되는것을 확인할수있음.
지금 까지 알아낸것
- Send 버튼을 누르면 Memo와 파일이 함께 업로드된다
- 파일 업로드 대상 폴더 /upload/파일명
- 업로드 파일 확인 시 GET 요청으로 /upload/파일명으로 접근할수 있다
- 파일 삭제 시 GET요청으로 ?mode=del&time=timestamp 값 으로 삭제가 된다.
- php문을 업로드해도 서버 사이드 스크립트가 작동하지 않음
- 문제의 코드들과 작동방식을 봤을때 크게 취약점이 없는것 같음
- 그리고 문제의 의도를 아직 파악하지 못하였지만 Memo를 통한것은 아닌거 같음
- upload file을 보는 쪽과 업로드 파일, delete 쪽으로 다시 한번 생각을 해보았음
delete를 수행하면 서버에서는 반드시 삭제 명령어를 수행하게 되어있음
- 1.png 라는 파일을 업로드하면 /upload/ 경로에 1.png 라는 파일로 저장이 됨
- 주소에 GET요청으로 /upload/1.png 라는 URL로 접속이 가능한것을 보면 php는 관여하지 않고 아파치단에서 바로 파일을 처리해주는거 같음
- 하지만 delete 명령어 실행 시 무조건 서버단에서 쉘의 rm 명령어나 php의 unlink 등의 파일 삭제 함수를 사용한다.
- 파일 업로드 시 파일명이 난수화가 되지 않기 때문에 우리가 그대로 업로드한 이름 그대로 업로드가 됨
- delete 를 클릭할 때 서버에서 삭제 명령어가 실행될 때 내가 삽입하고 싶은 명령어를 같이 실행(다중명령어) 하려면 파이프라인(|) , ; 를 사용할수있음
BurpSuite로 업로드 하는 파일명을 바꿔서 서버에 보내봄
그리고 Delete 실행 시
Delete의 명령어가 실행되면서 ls 명령어도 같이 실행된것을 확인 할 수 있음
위와 같은 해킹기법을
커맨드 인젝션 (command injection)
:명령어를 삽입한다
웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송, 웹 서버에서 해당 명령어를 실행하도록 하는 공격
(웹을 통해서 시스템 명령어(command)를 실행하는 공격)
Memo의 input태그에 내용을 채우고 파일을 선택하고 업로드시 해당하는 POST 요청의 패킷값
파일 Delete 시 패킷
- SQL 인젝션이나 XSS공격은 통하지 않음
- php문을 업로드하고 실행하면 실행이 될까 싶어서 업로드 후 접근해보았으나
위의 사진대로 text로만 나오고 서버 사이드 스크립트가 실행이 되지가 않는다.
- 파일을 업로드하고 Delete를 누르면 파일과 메모가 같이 삭제되는것을 확인할수있음.
지금 까지 알아낸것
- Send 버튼을 누르면 Memo와 파일이 함께 업로드된다
- 파일 업로드 대상 폴더 /upload/파일명
- 업로드 파일 확인 시 GET 요청으로 /upload/파일명으로 접근할수 있다
- 파일 삭제 시 GET요청으로 ?mode=del&time=timestamp 값 으로 삭제가 된다.
- php문을 업로드해도 서버 사이드 스크립트가 작동하지 않음
- 문제의 코드들과 작동방식을 봤을때 크게 취약점이 없는것 같음
- 그리고 문제의 의도를 아직 파악하지 못하였지만 Memo를 통한것은 아닌거 같음
- upload file을 보는 쪽과 업로드 파일, delete 쪽으로 다시 한번 생각을 해보았음
delete를 수행하면 서버에서는 반드시 삭제 명령어를 수행하게 되어있음
- 1.png 라는 파일을 업로드하면 /upload/ 경로에 1.png 라는 파일로 저장이 됨
- 주소에 GET요청으로 /upload/1.png 라는 URL로 접속이 가능한것을 보면 php는 관여하지 않고 아파치단에서 바로 파일을 처리해주는거 같음
- 하지만 delete 명령어 실행 시 무조건 서버단에서 쉘의 rm 명령어나 php의 unlink 등의 파일 삭제 함수를 사용한다.
- 파일 업로드 시 파일명이 난수화가 되지 않기 때문에 우리가 그대로 업로드한 이름 그대로 업로드가 됨
- delete 를 클릭할 때 서버에서 삭제 명령어가 실행될 때 내가 삽입하고 싶은 명령어를 같이 실행(다중명령어) 하려면 파이프라인(|) , ; 를 사용할수있음
BurpSuite로 업로드 하는 파일명을 바꿔서 서버에 보내봄
그리고 Delete 실행 시
Delete의 명령어가 실행되면서 ls 명령어도 같이 실행된것을 확인 할 수 있음
위와 같은 해킹기법을
커맨드 인젝션 (command injection)
:명령어를 삽입한다
웹 요청 메시지에 임의의 시스템 명령어를 삽입하고 전송, 웹 서버에서 해당 명령어를 실행하도록 하는 공격
(웹을 통해서 시스템 명령어(command)를 실행하는 공격)