본문 바로가기
WEB HACKING/웹 해킹[실습]

웹 시큐어 코딩 : 디렉토리 & 시스템 운영정보 노출

by madevth 2022. 3. 6.
반응형

저번 포스팅에서는 인증 / 인가 취약점에 대응하여 웹 시큐어 코딩을 해보았다.

인증 / 인가 취약점 방어하기 : [모의해킹_실습] - 웹 시큐어 코딩 : 인증 및 인가

이번 포스팅에서는 마지막으로 디렉토리 및 시스템 운영정보 노출 취약점을 막아보자!

 

① Directory 노출 취약점

Directory 노출의 경우, 그 자체로는 심각한 피해를 주진 않을 수 있지만, directory 구조나 파일명을 노출시킴으로써 2차 피해를 일으킬 수 있다. Apache 설정 파일을 수정해서, 디렉토리가 노출되지 않도록 하자.

 

Apache 설정 파일은 우분투의 경우 apache2.conf 파일을 찾을 수 있다.

find / -name apache2.conf 2>/dev/null

/etc/apache2/apache2.conf 경로에 존재한다.

 

여기서 Directory Options의 Indexes를 지워주었다.

 

적용을 위해 서버를 껐다가 재시작해주자.

sudo service apache2 stop
sudo service apache2 restart

성공적으로 Forbidden이 뜬다!!

 

 

② 시스템 운영정보 노출

Apache의 버전 정보 등이 뜬다. 시스템 운영정보가 노출될 경우, 침투 테스트(Penetration Testing)를 통한 악의적인 접근이 가능하므로, 노출을 방지해야 한다. (버전 정보만 알아도 원격 쉘 접속 등이 가능한 경우가 있다.)

 

설정 파일에 ServerTokens Prod, ServerSignature Off를 추가해준 후 다시 서버를 껐다 켰다.

성공적으로 운영정보를 제거했다!

개발 초기에 에러 메시지가 뜨도록 세팅을 바꿨었는데, 그 부분도 다시 off로 바꿔주면 에러 메시지를 통한 DB 정보 노출 등도 막을 수 있다. ([모의해킹_실습] - Php로 웹 개발하기 : 로그인(2) - MySQL 연동 Error)

 

처음에 연동이 잘 안 되는데 에러 메시지도 안 떠서 굉장히 고생했던 기억이 있는데, 이제 웹 시큐어 코딩 단계까지 진행하고 마무리로 에러 메시지 출력을 끄니 기분이 묘하다.

약 5개월 간 PHP 개발을 하면서 웹 해킹 주요 취약점을 공부했는데, 이제 다른 취약점도 하나둘씩 공부해보고, 더 나아가 침투 테스트와 모바일 앱 해킹도 공부해볼 것이다! 해킹 공부 시즌1 마무~의리!

반응형

댓글