2024. 2. 12. 13:32ㆍwebhacking.kr
파일을 올릴 수 있는 폼이 있습니다
일단 아무 파일이나 하나 올려보겠습니다
upload file을 누르면 올린 파일의 내용이 보입니다
제가 올린 파일은 test.txt입니다
./upload/ 경로에 들어가 있네요
그럼 이번에는 올린 파일을 삭제해 보겠습니다
mode, time이 URL에 붙어 나오며, 파일은 정상적으로 삭제됩니다
upload 기능이 있으니, php 웹쉘도 하나 만들어서 올려보겠습니다
위와 같이 파일을 만들어서 업로드해봤지만, php 코드가 실행되지 않았습니다
혹시 SQL Injection이나 XSS일까 싶어, 기본 구문들을 다 넣어봤지만.... 전부 꽝이었습니다
파일을 삭제할 때 봤던 URL에서 mode와 time이 있었는데, 이게 힌트인가 싶어 이것저것 게싱으로 막 넣어봤습니다
(time 숫자도 바꿔보고, mode는 del, rm, upload, uld, admin 등등...)
접근법이 이게 아닌가 싶어서 한참 고민을 해봤는데, 파일이 지워질 때 system() 함수가 사용되지 않을까 싶었습니다
system() 함수로 파일을 지우려면 system("rm [파일명]");의 형식으로 실행이 될 것입니다
그러면 여기다가 ;ls -al을 파일명으로 넣어서 Command Injection을 해보면 될 것 같았습니다
파일을 업로드한 후, Delete 버튼을 눌러서 파일을 지웠더니 명령어가 실행됐습니다
이런 문제는 거의 반 게싱으로 풀어야 하나 봅니다....