문제의 원리가 잘 이해되지 않습니다

기존 질문들도 읽어보고 Server-side Basic php 부분도 계속 읽어보고 있는데

http://host1.dreamhack.games:15626/list.php?file=../uploads/hello.json

이런식으로 입력하는 방식이라고 생각해서 접근하고 있습니다

근데 저렇게 입력했을 때 file에 인자로 들어간 hello.json 내용을 보려면 결국 file_get_contents 함수가 있는 존재하는 view.php가 들어가야 하는데

기존 질문의 내용을 보면 다른 페이지에서 취약점을 발생시켜야한다고 하는게 잘 이해가 되지 않습니다

그리고 강의 자료의 내용처럼 /index.php?page=../uploads/hello.json 이라고 하면 hello.json의 나와야하는거 같은데 안나오는 이유는 index.php에 file_get_contents 함수가 없어서 인게 맞나요?

그러면 결국 file_get_contents 가 존재하는 view.php에서 밖에 취약점을 발생 못시키는거 같은데 이 페이지에서 취약점을 발생시키는건 아니라고 하면 php를 새로 업로드를 해야하는건지 머리속이 복잡합니다;;

너무 답답해서 글 올려봅니다.. 질문이 좀 횡설수설한점 양해바랍니다 ㅠㅠ

#web
작성자 정보
답변 1
avatar
snwo
CTF First Place

LFI = LocalFileInclude, view.php 에서는 flag 문자열을 필터링하고있고,
php 파일을 include 하는 부분이 있습니다.

PHP의 include 함수는 인자로 전달된 파일을 읽은 후 해당 파일의 내용을 출력합니다. 파일의 내용 중 PHP 코드로 해석되는 구문이 존재하면 해당 코드를 실행합니다.

server-side-basic 에 있는 내용입니다. include 함수로 파일의 내용을 출력할 수 있고, 이 중 php 코드는 실행결과로 출력됩니다.
php 코드자체를... 답은 강의에 다 있는 것 같네요

2020.11.30. 19:54
질문에 대한 답을 알고 계신가요?
지식을 나누고 포인트를 획득해보세요.
답변하고 포인트 받기