본문 바로가기

Study records/Linux server hacking

웹 해킹 - SQL 인젝션 공격, XSS, 파일 업로드, 파일 다운로드, 무차별 대입

 SQL 인젝션 공격

웹 애플리케이션에서 발견되는 대표적인 취약점으로, 웹 애플리케이션이 데이터베이스와 연동하여 SQL을 질의하는 과정에서 이뤄진다. 이를 이용해 주로 인증 과정을 우회하여 원하는 계정에 접근하거나 특정 명령어를 실행시킬 수 있다. 

로그인할 때 ID와 Password에 임의의 특수 값을 넣어 데이터베이스에 질의하는 과정에 논리적인 오류가 발생되는데 이때 로그인 인증을 우회하거나 다른 사용자로 인증할 수 있는 취약점이 발생할 수 있다.

fail

select id, pw, name, level from member WHERE id = 'admin' and pw='1234'

해당 질의문의 결과값이 없다면 해당되는 로그인 정보가 없으므로 로그인 실패

 

 

pass

 

Password에 취약점을 발생시키는 코드를 넣으면(SQL을 삽입하면) 데이터베이스에서는 다음과 같은 질의문을 처리한다.

select id, pw, name, level from member WHERE id = 'admin' and pw=' or ''='

질의문에서 pw를 분석하면 논리연산 우선 순위를 기준으로 볼 때 false AND false OR true가 되는데 AND 연산이 먼저 실행되기 때문에 최종적으로 true가 되면서 로그인에 성공한다.

 

 

 

XSS

 웹 애플리케이션의 대표적인 취약점으로, 보통 웹 사이트의 게시판에 글을 작성할 때 사용자가 입력한 값을 검사하지 않은 경우에 발생한다. 공격자는 게시판에 정상적인 글이 아닌 악성 스크립트를 삽입하여 비정상적인 방법으로 사용자의 인증 정보인 쿠키, 세션 정보 등을 탈취할 수 있다.

게시판에 <SCRIPT> 태그 삽입

 

해당 글을 읽었을 때 작성된 스크립트가 실행된다

 

XSS의 취약점을 예방하려면 웹 애플리케이션에서 입력 값에 자바스크립트나 HTML 태그 등을 사용하지 못하게 막아야 한다.

 

 

 

파일 업로드

웹 셸 파일 업로드

 

공격자가 웹 셸 파일이 웹 서버 어디에 있는지 알고 있다면 웹 셸 파일을 이용해 시스템에 명령을 내릴 수 있다. 이를 통해 악의적인 기능을 수행할 수 있다.

 

 

 

파일 다운로드

 파일 다운로드의 취약점은 다운로드하려는 파일의 위치나 경로가 노출되거나 추측할 수 있는 경우에 발생할 수 있다. 이런 상황이라면 공격자는 외부에 노출되거나 추측이 가능한 정보를 이용해 파라미터 변조와 같이 비정상적으로 접근하여 원하는 경로로 접근하거나 특정 파일을 다운로드할 수 있다. 이를 통해 실제 다운로드 권한이 없어도 파일을 다운로드할 수 있다.

 

무차별 대입

 무차별 대입 공격(brute force attack)은 단순하게 특정 계정에 대해 로그인을 수없이 시도하는 것이다. 또한 이미 확보한 계정 정보의 유효성을 검증하기 위해 무차별 대입 공격을 시도하기도 한다. 예전에는 무차별 대입 공격을 많이 시도했고 이로 인한 정보 유출 피해가 많았지만, 최근에는 인증 절차에 캡차(CAPTCHA)를 결합하여 자동화된 무차별 대입 공격에 대응한다.