level25[old]

2022. 3. 21. 16:58Site/Webhacking.kr

이번시간에는 level25을 풀어보겠습니다

공부하는 입장이니 틀린것이 있더라도 양해부탁드리겠습니다


level25에 접속하는 위와 같은 화면이 나옵니다

일단 보이는것은 디렉토리와 파일목록들이 나오고 php파일 문서 3개도 보입니다

첫창은 url에 $file=hello라고 나와있으며 hello world를 출력하는것으로 보아 hello.php파일인것 같네요

아마 url에 파일이름이 나오는것으로 보아 GET방식으로 파일을 불러들이는것 같습니다

먼저 위 3개의 php파일 순차적으로 접근해보았습니다

 

일단 index.php에 접근하였는데 아무것도 출력이 안되네요...

 

다음은 flag.php에 접근했는데 FLAG is in the code라는 문구가 나옵니다

코드에 있다해서 소스코드를 확인해 보았는데 아무 정보도 찾을 수 없었습니다

힌트를 얻기위해 구글링을 해보니 이 경우에는 PHP Wrapper를 사용해야 한다고 합니다

PHP wrapper중에서 php://filter을 이용해야 됩니다

 

*

wrapper : 실제 데이터의 앞에서 어떤 틀을 잡아 주는 데이터 또는 다른 프로그램이 성공적으로 실행되도록 설정하는 프로그램

php filter : PHP 필터를 확인하고 안전하지 않은 소스에서 데이터를 필터링하는 데 사용됨

base64 : 문자코드에 영향을 받지 않는 공통 ASCII 영역의 문자들로만 이루어진 일련의 문자열로 바꾸는인코딩방식을 가리키는 개념 -> 즉 Binary Data를 Text로 변경하는 인코딩

*

 

페이로드작성방법 : php://filter/conver.base64-encode/resource=파일이름

이 문제를 풀기위해 필요한 flag.php파일을 resource부분에 대입하면 base64로 인코딩된 값을 출력하게 됩니다

php://filter/conver.base64-encode/resource=flag라고 url에 입력하니 base64로 인코딩된 값이 나옵니다

다시 인코딩된 값을 디코딩 시켜주겠습니다

 

base64로 디코딩된 값입니다

이제 이값을 디코딩해서 auth에 넣어주면 클리어 될것 같습니다

 

cf) PHP WRAPPER과 관련된 내용은 추후 올리도록 해보겠습니다

'Site > Webhacking.kr' 카테고리의 다른 글

level39[old]  (0) 2022.03.23
level27[old]  (0) 2022.03.23
level1[old]  (0) 2022.03.21
level24[old]  (0) 2022.03.19
level18[old]  (0) 2022.03.18