목록Webhacking.kr (47)
Bace
문제는 다음과 같다. 소스를 보면 5번라인에 에러를 리포팅 해주는게 있고, 파일명 중 문자열이 변환되는거랑 파일이 저장될 때 upload_dir 밑의 내가 올린 파일에 flag가 저장되는 것을 알 수 있다. 파일을 올려보았다. 파일이 올라가지만, 어디에 저장되는지 경로는 알 수 없다. burp suite를 통해 어디에 저장되는지 경로를 확인해보았다. 역시 경로는 나오지 않는다. 에러 리포팅을 통해 경로를 알아오는 것 같다. 파일명으로 에러 내는 것을 알아보던 중 파일명 최대 길이가 255글자라는 것을 알아냈다. 그래서 파일명을 엄청 길게 해서 보내보았다. 파일이 올라가고 경로가 확인된다. 해당 경로의 파일로 접속해보았다. Forbidden이 뜬다. 파일명이 길어서 올라가지 않거나 접속이 거부된 것 같다...
문제는 다음과 같다. MEMO와 파일을 올려서 flag를 찾는 것 같다. 무슨 파일을 읽으라고 제시되어 있지도 않아서 일단 ls 명령어를 실행시키려고 해보았다. php 에서의 ls 실행 명령어를 내용에 넣어서 올려보았다. 게시글이 생성된다. upload file을 클릭하면 php 파일의 내용물을 보여주지만 실행되지는 않는다. Delete를 클릭하면 게시글이 삭제되고, file deleted 라는 문자열을 띄워준다. 삭제 후 다른 명령어를 실행시켜주는 것 같다. Delete 후 ;을 통해 명령어를 붙여서 보내보았다. Delete를 눌러보아도 똑같은 결과가 나온다. 이번에는 파일명을 ;ls 라고 바꾼 후 업로드 해보았다. Delete 를 누르니 ls 명령어가 실행된다. 그리고 그 중에 flag가 있다. Auth
문제는 다음과 같다. 일단 2초 안에 3가지 항목을 다 입력 후 submit 해야하는 것 같다. 코드를 봐보았다. submit 버튼을 누르면 ck함수를 통해서 id, cmt, captcha의 값이 빈칸이면 커서를 빈칸에 놓는다. 그리고 captcha 옆에 나오는 값은 lv5frm.captcha_.value 값 인것 같다. id와 cmt 값은 임의로 주고, captcha 값에 lv5frm.captcha_value 로 submit 해주면 풀리는 것 같다. 근데 손으로 하나하나 입력하면 절대 2초 안에 풀지 못하므로, console 기능을 썼다. 위와 같이 보내봤는데 느리다고 한다. 새로고침한 후 바로 보내보았다. solve
문제는 다음과 같다. 웹쉘을 올린 후 cat /flag 를 하란다. 진짜 웹쉘을 올리는 것 같지는 않아서 일단 여러 타입의 파일들을 올려보았다. php 파일과 txt 파일을 올려봤는데 wrong type 이라면서 업로드 되지 않는다. png 파일을 올려보았다. 업로드가 된다. php 파일의 Content-Type을 image/png로 바꿔서 올려보았다. 업로드가 된다. php에서 파일을 읽어오는 명령어를 넣어서 php 파일을 업로드 해보았다. 파일이 올라가고 ./upload/FLAG.php 를 클릭하면 경로 그대로 이동한다. flag가 떴다. base64 같아서 디코딩해보았다. What did you expect? 라고 나온다. 일단 위에서 나온 flag 값을 그대로 Auth에 넣어보았다. solve