Search

WebHacking.kr Challenge old-25

목표 : php wrapper
ls -l 명령어를 쳤을 때 나올 결과물과 자유롭게 텍스트를 쓸 수 있는 칸이 있다.
d
r
w
x
r
-
x
r
-
x
A: 파일유형
B: 소유자 권한
B: 소유자 권한
B: 소유자 권한
C: 그룹 소유자 권한
C: 그룹 소유자 권한
C: 그룹 소유자 권한
D: 일반 사용자 권한
D: 일반 사용자 권한
D: 일반 사용자 권한
파일 권한
링크 카운터 : 연결된 파일 개수
파일의 소유자
파일그룹 소유자
파일 사이즈
최종 변경 일시
파일 이름
flag.php 라고 누가봐도 얻고 싶은 파일이 있다 들어가보자
음 읽기 권한이 다 주어져있어서 쉽게 들어왔지만 딱히 변화가 없다
hello가 기본값이었으니 확장자는 빼고 넣어보자
오 플래그가 있다는 코드를 발견했다.
파일에 직접 접속해보자
바로 flag.php가 홈에 붙어있는걸 알았고
? 앞에 index.php가 기본으로 들어가있었다.
아무래도 index.php가 index를 불러와 중복으로 부르는 걸 막기 위해 file=index는 변화가 없던 것 같다.
index.php의 소스코드를 볼 방법을 찾아야한다. (사실 이 방법을 알면 그대로 flag.php 파일을 보면 된다)
PHP Wrapper라는 개념이 있다.
원하는 예시를 찾았다
PHP 파일을 그대로 실행시키는 유형이므로 php:// 로 묶인 PHP도 실행이 된다.
찾고 싶은 값은 flag.php
php://filter/write=string.rot13/resource=flag
PHP
복사
흠 다시 hello 로 리다이렉트 되지 않은 걸 보면 정상적으로 인식이 된건 맞으나 그냥 그대로 flag.php로 인식된것 같다.
내용을 다른 형태로 변환해볼 필요가 있다.
String filters: string.rot13, string.toupper, string.tolower
conversion filters: convert.base64-encode and convert.base64-decode, convert.quoted-printable-encode and convert.quoted-printable-decode, convert.iconv.*
Compression filters: zlib.deflate and zlib.inflate, bzip2.compress and bzip2.decompress
Encryption filters: mcrypt.* and mdecrypt.*
php://filter/convert.base64-encode/resource=flag
PHP
복사
base64인코딩을 해보자
뭔가 다른 값이 나왔다! 디코딩해보자
FLAG를 획득했다

✓ 다른 [워게임] 포스트

WebHacking.kr Challenge Write-Up (70/80)
In progress
WebHacking.kr Challenge Write-Up (70/80)
In progress
Load more
︎ 더 많은 게시물을 보려면
︎ 작성자가 궁금하면?
 2023. absolroot all rights reserved.