이전에 OWASP Top10 리스트에 대한 포스트를 작성한 적이 있었다.
2021/01/07 - [웹 해킹, 보안/기초 지식] - OWASP Top 10이란?
이 가이드를 기반으로 취약점 진단을 하고 싶다면 당연하지만 진단할 취약한 사이트가 있어야 한다. 10가지 취약점을 가진 사이트를 직접 구축해서 테스트해보는 것도 해당 취약점(특히 A4 XML 외부 엔티티, A8 안전하지 않은 역직렬화 부문)을 이해하기 좋은 방법이지만 A1 Injection, A7 Cross Site Scripting 같은 취약점은 널리, 오랫동안 알려져왔기 때문에 미리 구축된 사이트에서 테스트해보는 것도 좋을 것이다. 그래서 몇몇 이미지나 사이트를 골라봤는데 이는 다음과 같다.
1. Acunetix Web Vulnerability Scanner - Test websites
Acunetix Web Vulnerability Scanner - Test websites (vulnweb.com)
유명 취약점 스캐너 업체인 Acunetix에서 자사 제품 테스트 용으로 개발한 사이트들이다. 다양한 기술 스택을 기반으로 한 취약한 웹사이트들이 제공되고 있는데 대부분의 취약한 웹사이트들이 php로 제작되어 제공되는 것과 달리 파이썬과 플라스크, CouchDB를 활용한 사이트도 있다. SQL 인젝션, XSS, CSRF 등 다양한 공격을 시험해볼 수 있는데 원래는 제품 테스트 용이고 하고 싶으면 취약점 테스트를 해보라고 열려있는 것이기 때문에 따로 튜토리얼이나 자세한 문서는 제공되지 않는다. Review 링크로 이동하면 취약점 스캐너 데모를 다운받아 사용해볼 수 있다.
시험삼아 testphp 페이지에서 XSS를 시도해보았고 성공적으로 스크립트가 실행되는 것을 볼 수 있었다. DVWA 때처럼 따로 난이도 조절은 없는것 같다.
2. DVWA
DVWA - Damn Vulnerable Web Application
영국(uk)에서 개발된 것으로 보이는 취약한 웹 서버 이미지로 4가지 난이도의 10가지 취약점(그 중 2개는 SQL Injection, 2개는 XSS)을 실습해볼 수 있다. 요즘 한창 강의를 들으면서 실습해보고 있는 이미지인데 2015년에 업데이트가 중단되었기 때문에 OWASP Top10(2017)에 새로 등록된 취약점이나 다루지 않는 취약점이 좀 있지만 난이도별로 다른 시큐어코딩을 직접 확인하면서 이해할 수 있고 특히 Impossible 단계에서 제대로 적용된 시큐어코딩을 확인할 수 있다는 장점이 있다. 모든 취약점을 실습하면 블로그에 포스팅한 내용을 하나로 묶어서 보고서로 작성하여 빈약하지만 일종의 포트폴리오처럼 사용할 수 있을 것이다.
3. bWAPP
DVWA와 비슷하지만 훨씬 더 많은 취약점을 제공하고 있는 서버 이미지다. MME라는 정보보안 업체에서 개발하였으며 당시 OWASP Top10(2013) 항목들이 전부 구현되어 있다. 역시 아파치와 PHP, MySQL 스택 기반이며 low, medium, high 3단계의 취약점 항목을 100가지 이상 제공하고 있다. DVWA보다 훨씬 양이 많기 때문에 그리고 소스 코드나 도움말 항목이 따로 없기 때문에 난이도가 좀 더 높다고 할 수 있다.
4. 직접 만든 사이트
개발과 보안은 떼어놓을 수 없는 사이기 때문에 취약한 사이트를 직접 개발하고 진단, 공격 및 보완하는 방식으로 진행하는 것도 괜찮을 것 같다. 지금 사용할 줄 아는 언어나 프레임워크는 php, python(flask) 뿐이기 때문에 일단 알고 있는 언어로 최대한 이런저런 기능(게시판, 파일 업로드, 검색, 회원가입 등)을 구현해보고 의도적으로 취약하게 개발한 후 공격 시연, 보완 후 다시 공격 시연 순서대로 보고서를 작성해야겠다.
모든 진단을 항상 사람이 수행할 순 없기 때문에 관련 툴이나 스크립트를 적당히 활용하면서 툴 사용법도 익히면 좋을 것이다.
'웹 해킹, 보안 > 기초 지식' 카테고리의 다른 글
OWASP Top 10이란? (0) | 2021.01.07 |
---|