Old-28 Domain & Tool
- 구분 : HTTP Access
- 문제풀이에 사용된 도구
- Chrome 103.0.5060.66
Old-28 Question & Answer
우선 내가 올리는 파일은 /upload/아래 개인별로 지정된 폴더에 저장된다고 한다.(이건 세션마다 다르더라)
우리의 목표는 /upload/ 아래 개인폴더에 존재하는 flag.php를 읽는 것이다. 한가지 dummy data로 시도해보자 아래의 파일을 작성해서 넣어보았다.
## Dummy.dat
THIS Is DUMMY
파일은 잘 들어갔다. 링크가 걸렸으니 직접 들어가보자
들어간 대로 잘 나온다. 그러면 저 flag.php를 직접 들어가면 어떻게 될까???
아무화면도 나오지 않는다(빈 화면이다. 배경색이랑 우연찮게 똑같다.<다크모드 개꿀>) 그렴 DIRECTORY LISTING이 되는지 확인해 보자. /upload/(자기의 폴더명) 까지만 들어가보자
으흠.. Forbidden되어있다. 그런데 신기한건 저 폴더는 Forbidden되어있는데, 아래있는 flag.php는 적용이 되었다는 점이다. 다시 한번 flag.php에 들어가서 콘솔을 확인해보자
그렇다.flag.php는 확실하게 클라이언트(우리)에게 전달은 되었지만, 안쪽에 내용이 나오지 않는다. 접근이 성공했는데, 상위폴더가 Forbidden이다. 이는 http.conf에서 접근제어를 이 폴더만 .htaccess에 상속받았다는 이야기이다.
htaccess의 문법은 주설정파일인 http.conf의 설정밥법과 동일하다. 일반적으로 보안을 위해서 upload되는 파일의 실행을 막기 위해서 php_flag engine off를 작성하게 되는데, 이 설정이 없으면 php는 올라가는대로 실행히되게된다. 즉 flag.php에 우리 파일에 걸린 접근제어도 동작한다는 거다. 만약 우리가 올리는 파일명이 .htaccess라면 이 설정을 override할 수 있을 것이다. 다음의 파일을 올리자
## .htaccess
php_flag engine off
* 이름 빼고 올려야한다.
이렇게 올린 후 flag.php를 확인해보자
NICE!
'WarGame > Webhacking.kr' 카테고리의 다른 글
[Webhacking.kr] old-27 Answer (0) | 2022.07.28 |
---|---|
[Webhacking.kr] old-26 Answer (0) | 2022.07.28 |
[Webhacking.kr] old-25 Answer (0) | 2022.07.28 |
[Webhacking.kr] old-24 Answer (0) | 2022.07.27 |
[Webhacking.kr] old-23 Answer (0) | 2022.07.27 |