1. HTTP 인증 설정
(1) /etc/apache2/apache2.conf 내 AllowOverride를 None에서 AuthConfig 수정
(2) [htpasswd -cb .htpasswd (아이디) (패스워드)] 명령어를 통해 .htpasswd 파일 생성
(3) .htaccess 파일에 아래와 같이 입력
AuthUserFile /var/www/html/.htpasswd
AuthName "Protected Area"
AuthType Basic
<Limit GET POST>
Require valid-user
</Limit>
2. HTTP 인증 우회
- 설정을 완료할 경우 아래와 같이 해당 디렉토리 내의 파일에 접근할 경우 로그인을 진행해야 한다.
- 하지만 아래와 같이 지정되어있는 메소드가 아닌 Method로 요청을 보내면 인증을 우회하여 접근 불가능한 페이지에 접근이 가능하다.
3. 대응방안
- /etc/apache2/apache2.conf 내 AllowOverride를 AuthConfig에서 All로 변경 (이후 service apache2 reload)
- .htaccess 파일 내 아래의 내용을 추가해준다. 그 결과 GET과 POST를 제외한 다른 메소드의 경우 접근이 제한되어 Forbidden이 된다.
...
<LimitExcept GET POST>
Order Allow,Deny
Deny from all
</LimitExcept>
...
※ 에러 체크
htaccess: order not allowed here
만약 htaccess 설정하였는데 500 Internal Server Error가 뜰 경우는 apache2.conf의 AllowOverride가 수정되지 않았기 때문이다. All로 변경한 뒤 apache2 서비스를 reload해주어야 정상적으로 작동한다.
※ 참고
'Hacking > Web' 카테고리의 다른 글
open_basedir setting and bypass (0) | 2019.12.31 |
---|---|
Sqlite Sql Injection Prevention (0) | 2019.12.30 |
데이터 평문전송 대응방안 (2) | 2019.12.06 |
0.0.0.0 의 의미 (0) | 2019.11.20 |
Mysql Special Comment (0) | 2019.11.20 |