안녕하세요.
웹 해킹 48번 문제풀이 하겠습니다.
문제를 확인해보면, 업로드 취약점이 있을 거라고 예상이 됩니다.
test.txt 파일을 생성 후 test를 Send 해보겠습니다.
[Upload file]을 누르면 test.txt에 적힌 내용을 볼 수 있고,
[Delete]를 누르면 file deleted. 출력 후 파일이 삭제되는 것을 볼 수 있습니다.
이 문제에 대한 접근은 파일 업로드 취약점으로 접근하는 것이 아닌 거 같습니다.
그러한 이유는 php 파일을 업로드해도 파일 안에 내용이 텍스트로 출력하는 것을 확인할 수 있습니다.
그렇다면, 해당 문제에 대한 접근을 파일을 Delete 할 경우 파일이 삭제되는 것에 대해서 접근해보겠습니다.
리눅스 OS를 사용하는 경우 세미콜론(;)을 사용해서 명령어를 연속해서 실행할 수 있는데 이 문제에서는
파일 삭제 명령어(rm)를 사용 후 디렉터리 출력 명령어(ls)를 동시에 실행해 보겠습니다.
Burpsuite를 사용하여 파일명 뒤에 ;ls -al를 보내준 후 delete를 누르면 문제가 해결되는 것을 볼 수 있습니다.
이러한 공격 기법을 OS 커맨드 인젝션(OS Command Injection)이라고 하는데, 이는 취약한 변수로 시스템 명령어를 주입하여 서버 운영체제에 접근하는 공격입니다.
대응 방안으로는, escapeshellcmd 함수를 통해 명령어 입력 공격을 방지하기 위해 #,&.;,|,*,? 등 특수문자 앞에 백 슬러시를 추가해주는 방법이 있습니다.
감사합니다.
'Hacking > Webhacking.kr' 카테고리의 다른 글
Webhacking.kr 50번 문제풀이 (0) | 2021.07.24 |
---|---|
Webhacking.kr 49번 문제풀이 (0) | 2021.07.23 |
Webhacking.kr 47번 문제풀이 (0) | 2021.02.23 |
Webhacking.kr 46번 문제풀이 (0) | 2021.02.19 |
Webhacking.kr 45번 문제풀이 (0) | 2021.02.17 |