내 잡다한 노트

웹 애플리케이션 취약점을 통한 해킹 본문

보안

웹 애플리케이션 취약점을 통한 해킹

peanutwalnut 2023. 9. 3. 16:24

웹 서버의 취약점보단 웹 애플리케이션의 취약점에서 웹 해킹 사고가 발생하는 경우가 가장 많다.

대표적인 것을 써본다.

 

# SQL 인젝션 공격

대표적인 취약점으로, 웹 애플리케이션이 데이터베이스와 연동하여 SQL을 질의하는 과정에서 이뤄진다.

이를 이용해 주로 인증 과정을 우회하여 원하는 계정에 접근하거나 특정 명령어를 실행시킬 수 있다.

ID에 admin, password에 1234를 넣으면 질의문은 다음과 같다

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

그런데, password에 ' or ''=' 를 넣고 하면 성공한다.

왜 그럴까? 바로 false AND false OR true 라는 논리연산이 돼서 최종적으로 true가 되어 성공한다.

 

# XSS (Cross Site Scripting)

보통 웹 사이트의 게시판에 글을 작성할 때 사용자가 입력한 값을 검사하지 않은 경우에 발생한다. 

공격자는 정상적인 글이 아닌 악성적인 스크립트를 삽입하여 비정상적인 방법으로 사용자의 인증 정보인 쿠키, 세션 정보

등을 탈취할 수 있다.

그래서 입력 값에 자카스크립트나 html 태그 등을 쓰지 못하게 막아야 한다.

 

# 파일 업로드

대부분 파일을 업로드할 때 파일 유형을 검증하지 않아 발생한다.

공격자는 공격 대상인 웹 서버에 .asp, .php, .jsp 등의 웹 언어를 업로드할 수 있다면 파일 업로드 취약점이 존재하는 것으로 보고, 웹 셸을 업로드하여 서버에 악의적인 기능이나 악성 코드를 배포하는 데 활용한다.

 

# 파일 다운로드

다운로드하려는 파일의 위치나 경로가 노출되거나 추측할 수 있는 경우에 발생할 수 있다.

이런 상황이라면 공격자는 추측이 가능한 정보를 이용해 파라미터 변조와 같이 비정상적으로 접근하여 원하는

경로로 접근하거나 특정 파일을 다운로드할 수 있다. 이를 통해 실제 다운로드 권한이 없어도 파일을

다운로드 할 수 있다.

예를 들어 2022-닭다리업체선정결과.docx 파일이 작년에 있었다면 올해엔 2023-닭다리업체선정결과.docx 파일이

존재할 것이라고 추측할 수 있다. 공격자는 추측한 파일의 다운로드를 시도하여 파일이 유출될 수 있다.

흔히 발생하는 사례니 이를 막기 위해선 파일을 업로드할 때 파일명 그대로 올리지 말고 실제 서버에는 MD5 해시 값으로 파일을 저장하고, 저장된 파일명은 별도의 파일 DB 테이블을 운영하여 다운로드 시 원래 파일명으로 변환해야 한다.

 

# 무차별 대입

단순하게 특정 계정에 대해 로그인을 수없이 시도하는 것이다.

칼리 리눅스의 비밀번호 크랙 도구인 Hydra로 작업하기 전에, 웹 브라우저로 공격 대상의 로그인 과정과 구조를 알아내야한다. 웹 페이지의 f12를 눌러 개발자 모드에서 로그인을 어떻게 처리하는지 볼 수 있다.

 

 

 

'보안' 카테고리의 다른 글

정보보호 정책  (0) 2024.09.25
CORS(Cross-Origin Resource Sharing)  (0) 2023.11.30
아파치 웹 서버 기초적인 보안 설정  (0) 2023.09.03
[보안] 웹 서버 취약점을 통한 해킹  (0) 2023.09.03