무기는 끈기

[웹 해킹] Intro. 웹 모의해킹 기술 (5가지) 본문

Hacking/Web Hacking

[웹 해킹] Intro. 웹 모의해킹 기술 (5가지)

김유비야 2023. 4. 4. 23:38

 

 

 

5개월 동안 다양한 웹 모의해킹 기술 중 5가지를 중점적으로 배울 것이다.

 

 

여기서 언급할 5가지 외나머지는 대부분 여기서 파생된 것이라고 한다.

 

이 5가지를 공부하며 깊이 이해하는 것을 웹 해킹에 있어서 최우선 목표로 생각하며 공부하려고 한다.

 

 

 

5가지 웹 모의해킹 기술이 무엇인지 간단하게 찾아보고 정리해보자.

 

1. SQL Injection (SQL 삽입, SQL 주입으로도 불린다.)
 코드 인젝션의 한 기법으로 클라이언트의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격 방식을 말한다.
주로 사용자가 입력한 데이터를 제대로 필터링, 이스케이핑하지 못했을 경우에 발생한다. 공격의 쉬운 난이도에 비해 파괴력이 어마어마하기 때문에 시큐어 코딩을 하는 개발자라면 가장 먼저 배우게 되는 내용이다. 이러한 injection 계열의 취약점들은 테스트를 통해 발견하기는 힘들지만 스캐닝툴이나 코드 검증 절차를 거치면 보통 쉽게 발견되기 때문에 탐지는 쉬운 편이다. 보안회사 Imoeerva가 2012년에 발표한 보고서에 따르면 월평균 4회 가량의 SQL 인젝션 공격이 일어난다고 한다. OWASP에서도 수년 동안 인젝션 기법이 보안 위협 1순위로 분류 되었던 만큼 보안에 각별한 주의가 필요하다.
너무나도 잘 알려진 취약점 공격이기 때문에 대부분의 서버는 SQL 인젝션에 대한 방어가 되어있다. 괜히 애먼 곳에서 이 공격을 시도하지 말자. 공격이 먹히지도 않고 본인의 IP만 차단당할 것이며, 설령 먹힌다 해도 법률에 따라 처벌받는다.

2. XSS (Cross-site Scripting)
 줄이면 CSS인데 Cascading Style Sheet와 혼동이 있을 수 있어서 XSS라고 부르는 것이다.

SQL Injection과 함께 웹 상에서 가장 기초적인 취약점 공격 방법의 일종으로, 악의적인 사용자가 공격하려는 사이트에 스크립트를 넣는 기법을 말한다. 공격에 성공하면 사이트에 접속한 사용자는 삽입된 코드를 실행하게 되며, 보통 의도치 않은 행동을 수행시키거나 쿠키나 세션 토큰 등의 민감한 정보를 탈취한다.
(* 사실 XSS와 SQL Injection은 그 경계가 모호하다.)
 
3. CSRF (Cross-Site Request Forgery)
 사이트 간 요청 위조의 줄임말.
웹 어플리케이션 취약점 중 하나로 사용자가 자신의 의지와 무관하게 공격자가 의도한 행동을 해서 특정 웹페이지를 보안에 취약하게 한다거나 수정, 삭제 등의 작업을 하게 만드는 공격 방법이다. 2008년에 발생한 옥션의 개인정보 유출 사건에서도 관리자 계정을 탈취하는데 이 방법이 사용되었다. 공격의 난이도가 높지 않아 흔히 사용된다.

4. File Upload / Download
 파일 업로드가 가능할 때 그 업로드 할 수 있는 파일의 종류가 제한되어 있지 않다면 업로드 취약점 공격이 가능하다. 이 취약점을 이용하기 위해서는 파일이 업로드 되는 경로를 알아야 한다. 파일을 업로드 한 뒤에 경로를 바꿔
'bad.php' 파일(메모장 파일, txt)의 주소
' <?php
echo "hello!!";
system('is');
?> '
를 입력한다면 PHP파일을 실행할 수 있다. 이를 이용하게 되면 서버 내에 명령어를 입력할 수 있으며, 모든 정보가 탈취될 수 있다.
 파일 다운로드가 가능할 때 저장되는 파일의 경로가 PHP파일이나 HTML파일이 모여있는 폴더의 하위폴더나 근처 폴더에 있을 때 PHP파일의 경로를 알 수 있다. 이 방식은 다운 버튼을 눌렀을 때 이동하는 링크에서 파일 이름이 나와있거나 암호화된 변수가 들어가지 않았을 때 사용할 수 있다.

5. 인증 / 인가 (Authentictication / Authorization)
 말 그대로 인증과 인가가 불충분해서 발생하는 취약점.
 인증은 자신이 A라고 주장하는 사람이 실제로 A가 맞는지 확인하는 과정으로 로그인 인증, 본인 인증, 휴대전화 인증, 카드 인증 등을 예시로 들 수 있다. 인증이 불충분하다면, 사용자를 식별하는 과정에서 우회나 변조가 발생할 수 있다.
인증 우회는 대표적으로 XSS를 통한 세션을 탈취나 중간자 공격(MITM: Man In The Middle Attack)을 통해 발생할 수 있다.
 인가는 사용자에게 권한을 부여하는 것으로, 작성자만 글을 수정하거나 삭제할 수 있도록 허용하는 것을 예시로 들 수 있다. 인가가 불충분하다면, 권한이 부여되지 않은 사용자가 허가되지 않은 페이지에 접근하게 될 수 있다.

 

 

 

 

 

+

 

추가로 찾아보고, 참고한 사이트 출처


(재밌는 예시를 통해 쉽게 접근하기 위해 주로 나무위키를 찾아보았다.)

 

https://namu.wiki/w/SQL%20injection

 

SQL injection - 나무위키

여기서 "Robert'); DROP TABLE students;--"학생을 "학생 이름" 자리에 넣을 경우 다음과 같은 명령문이 된다. 첫 번째 줄에서는 Robert라는 학생이 입력되었지만, 두 번째 줄에서 학생들의 데이터가 있는 테

namu.wiki

https://namu.wiki/w/XSS

 

XSS - 나무위키

XSS는 데이터를 입력할 때와 출력할 때, 모두 필터링하고, 클라이언트에도 막을 수 있을만한 수단을 구성해놓는 것이 좋다. 보안은 한없이 덧대도 끝이 없고, 아래 서술한 방식으로 구성해도 기

namu.wiki

https://namu.wiki/w/CSRF

 

CSRF - 나무위키

방어 방법 중 가장 기초적인 방법은 Referer 체크를 하는 방법이 있다. Referer는 HTTP 헤더에 있는 정보로 해당 요청이 요청된 페이지의 정보를 가지고 있는데 해당 정보는 Paros나 Zap, fiddler같은 프로

namu.wiki

https://nesquitto.tistory.com/109

 

파일 업로드/다운로드 취약점 공격

파일 업로드 취약점 공격 파일 업로드가 가능할 때 그 업로드 할 수 있는 파일의 종류가 제한되어 있지 않다면 업로드 취약점 공격이 가능합니다. 이 취약점을 이용하기 위해서는 파일이 업로드

nesquitto.tistory.com

https://hanuscrypto.tistory.com/75

 

인증, 인가 취약점

인증과 인가 취약점은 말 그대로 인증과 인가가 불충분해서 발생하는 취약점이다. 인증과 인가의 개념과 대응방안에 대해 알아보자. ① 인증(Authentication) 인증은 자신이 A라고 주장하는 사람이

hanuscrypto.tistory.com

https://gomguk.tistory.com/74

 

[모의해킹 실습] 불충분한 인증 페이지 구현 및 공격 실습

불충분한 인증 불충분한 인가 취약점은 중요 정보를 다루는 페이지에 대한 인증 절차가 미흡할 경우 발생하는 취약점입니다. 인증 기능(로그인, 중요 페이지에 대한 추가 인증)은 구형하였으나

gomguk.tistory.com

https://velog.io/@zionedoha/%EC%9D%B8%ED%84%B0%EB%84%B7%EB%B3%B4%EC%95%889%EC%A3%BC%EC%B0%A8-%EC%9B%B9-%EC%9D%B8%EC%A6%9D-%EC%B7%A8%EC%95%BD%EC%A0%90

 

[인터넷보안] 9주차 웹 인증 취약점

OTP사용자 번호와 생성값의 입력으로 암호 알고리즘을 통해 생성되는 일회용 패스워드로, 매번 한번만 사용된는 일방향 해시값을 이용함홍채인식사람마다 고유한 특성을 가진 안구의 홍채 패턴

velog.io