본 내용에서는 XSS (Cross-Site Scripting)와 CSRF (Cross-Site Request Forgery) 취약점을 활용한 시나리오 기반 모의 해킹을 진행하고자 합니다.
(취약점 진단을 진행한 홈페이지는 자체 제작된 페이지로, 허가 없이 이러한 공격을 시도할 경우 법적 문제가 발생할 수 있습니다.)
1. XSS (Cross-Site Scripting)란?
XSS(Cross-Site Scripting) 공격은 사용자 입력을 적절히 검증하거나 필터링하지 않고 웹 페이지에 반영할 때 발생하는 보안 취약점입니다.
XSS 공격은 주로 쿠키 탈취, 세션 하이재킹, 피싱 등 다양한 악의적인 목적을 위해 사용됩니다.
1-1. XSS 모의해킹 시나리오
공격자가 검색창에 악성 스크립트를 삽입하고, 사용자가 검색 URL을 실행할 때 인증 정보가 탈취되는 시나리오입니다.
Step 1. 검색창에 "test" 단어를 검색 시 클라이언트에 검색한 단어가 출력되는 것을 확인
Step 2. 검색창에 세션 정보를 탈취할 수 있는 스크립트를 삽입한 후 검색시도
Step 3. 검색 파라미터 "query" 에 삽입한 스크립트가 서버로 요청되는 것을 확인할 수 있음, 이후 서버 응답 내용에 스크립트가 삽입되어 있는 것을 확인함
Step 4. 삽입한 스크립트가 실행되면서 "IP x.x.x.62" 에 세션정보를 전송함, 만약 공격자가 스크립트를 삽입한 검색 URL을 타 사용자가 실행할 수 있게 게시글 등으로 유도한다면 타 사용자 세션 정보를 탈취 할 수 있음
Step 5. 사용자 세션 정보가 "IP x.x.x.62" 데이터베이스에 저장되어 있는 것을 확인할 수 있음
2. CSRF (Cross-Site Request Forgery)란?
CSRF(Cross-Site Request Forgery) 공격은 피해자가 인증된 상태에서 악의적인 요청을 서버에 보내도록 유도하는 공격입니다. 이 공격은 사용자가 인증된 세션을 유지하는 동안 발생하며, 피해자가 악성 웹 페이지나 링크를 클릭하는 것만으로도 서버에 원하지 않는 요청을 전송하게 됩니다.
2-1. CSRF 모의해킹 시나리오
공격자가 게시글에 악성 스크립트를 삽입하고, 관리자가 이를 열람할 때 인증 정보가 탈취되는 시나리오입니다.
Step 1. 공격자가 실행시, 새로운 관리자 계정을 등록하는 스크립트를 삽입한 후 저장함
Step 2. 관리자가 해당 글을 열람 시도
Step 3. 서버에서 응답하는 게시글 내용에서 스크립트가 삽입되어 있는 것 을 확인
Step 4. 게시글에 삽입된 스크립트가 실행되면서 관리자 세션으로 새로운 관리자 계정 등록을 요청함
Step 5. 관리자 페이지에서 사용자 목록을 확인했을 때 "attacker" 계정이 추가된 것을 확인
3. XSS와 CSRF의 차이점
XSS와 CSRF는 스크립트를 활용한다는 점에서는 유사하지만, 공격 방식에서 차이점을 보입니다.
XSS는 클라이언트 측에서 악성 스크립트를 실행시키는 공격이고, CSRF는 사용자가 의도하지 않게 서버에 악성 요청을 보내는 공격입니다. 두 공격 모두 사용자의 인증 정보나 세션을 악용할 수 있으므로, 이를 방지하기 위한 적절한 방어 전략이 필요합니다.
'Security > Web' 카테고리의 다른 글
[Web] SSRF 취약점 분석 및 모의해킹 시나리오 (0) | 2024.11.20 |
---|
댓글