(old-28과 마찬가지로 멘토님이 도와주신 문제..)
문제 화면입니다.
문제의 소스 코드입니다.
die 함수를 전부 피하고 결과 값이 존재하면 플래그를 얻을 수 있습니다.
그냥 index.php로 가면 아무것도 출력되지 않아서 die 함수가 실행됐음을 알 수 있습니다.
접근 방식은 이전 old-28과 비슷한데
에러를 일으켜보면 사용되는 서버가 아파치 서버임을 알 수 있습니다.
mysqli_connect()에 인자로 설정된 값이 없으면 php.ini의 디폴트 값을 가져와서 실행하는데
.htaccess 파일로 해당 디렉터리 내의 디폴트 값을 설정해 줄 수 있습니다.
https://www.php.net/manual/en/configuration.changes.php
.htaccess는 위와 같이 작성해주며
host에는 구글 클라우드에서 부여해준 mysql의 외부 아이피를 넣으면 됩니다.
user와 pw는 mysql로 생성한 유저의 아이디와 비밀번호를 넣어주면 됩니다.
로컬에서 열심히 시도해봤지만 오류를 도저히 해결할 수 없어서
구글 클라우드를 통해 구축하였습니다.
인스턴스를 하나 만들어주고 클라우드 셸에서 소스 코드에 적힌대로 db와 table을 작성해줍니다.
0.0.0.0/0의 접속을 승인해줘서 모든 클라이언트가 접속할 수 있도록 설정해줍니다.
이제 .htaccess 파일을 업로드하고
소스 코드로 들어가주면
플래그가 나왔습니다.
이 값을 Auth 탭에 인증하면
점수를 얻었습니다!
레퍼런스
https://aidencom.tistory.com/m/433
'write-up(web) > webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] ouroboros golf write-up (0) | 2022.10.27 |
---|---|
[Webhacking.kr] Challenge old-59 write-up (0) | 2022.10.27 |
[Webhacking.kr] Challenge old-28 write-up (0) | 2022.10.12 |
[Webhacking.kr] baby write-up (0) | 2022.09.24 |
[Webhacking.kr] Challenge old-53 write-up (1) | 2022.09.24 |