강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

작성자 없음

작성자 정보가 삭제된 글입니다.

모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1

[실습5-7] 실무 사례 분석-7

실무 사례 분석 - upload_prob 7 궁금사항 질문

작성

·

102

·

수정됨

0

안녕하세요 크리핵티브님 다름이 아니라, 실무 사례 분석 - upload_prob 7 강의 들으면서 궁금한 게 있어 질의드립니다.

$uploadFile = $_POST["oldfile"];

의 값을 파일 다운로드 취약점 값 변조하여 다운로드 받는 것 까진 이해되었습니다.

 

이 때 궁금한 점은

$query = "update {$tb_name} set title='{$title}', writer='{$writer}', content='{$content}', file='{$uploadFile}', regdate=now(), gubun='{$gubun}' where idx={$idx}";

action.php에서 ../../index.html이 수정 페이지에서 요청한 writer, content으로 update 되어진 index.html이 다운로드가 아닌 기존 index.html이 다운로드 되는 이유가 무엇인지 궁금합니다!

 

 

 

 

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. 초보안님 질문에 답변 드리겠습니다.

질문하신 부분은 SQL 쿼리와 파일 다운로드 관련한 두 가지 측면에서 볼 수 있습니다. 기존의 index.html 파일이 다운로드된다는 것은, update 쿼리 실행 후에 해당 파일이 바로 업데이트되지 않았기 때문일 가능성이 높습니다. 이는 여러 가지 이유에서 발생할 수 있습니다.

  1. 쿼리의 즉시성 여부: update SQL 쿼리가 실행되었지만, 그 결과가 파일시스템에 바로 반영되지 않을 수 있습니다. 데이터베이스의 내용이 변경되었더라도 파일 시스템의 파일은 데이터베이스 변경 이후 다시 생성되거나 수정이 필요합니다. 이 경우 파일 시스템 리프레시가 필요할 수 있습니다.

  2. 캐싱 문제: 웹 서버나 브라우저 수준에서 어떤 캐싱이 되어 있을 경우에도 이전 상태의 파일이 제공될 수 있습니다. 따라서 브라우저의 캐시를 비우거나, 서버 캐시가 설정되어 있으면 해당 설정을 점검해보시기 바랍니다.

  3. 잘못된 경로 지정: 업데이트된 파일이 저장될 경로가 잘못 지정되어 있을 수 있습니다. 데이터베이스와 연동되는 쿼리에서 파일 경로가 올바르게 지정되어 있는지 확인이 필요합니다.

관련된 질문을 다룬 유사한 게시물을 몇 개 첨부드립니다:

위의 링크를 통해서 각 상황에 맞는 해결 방안을 찾아볼 수 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

작성자 없음

작성자 정보가 삭제된 글입니다.

질문하기