이 글은 '웹 개발자와 정보보안 입문자가 꼭 알아야 할 웹 해킹 & 시큐어 코딩'을 보고 정리한 글입니다.
0. 웹 해킹 개요
웹해킹은 왜 알아야하는가?
웹서비스는 계속 만들어지며 유지보수가 되고 있음
방어만 알 것이 아니라 공격을 알아야 적절한 보안을 할 수 있음
APM
Apache - WS
PHP server side script
MySQL
apmSetup(세개를 한번에 다운) 맥은 MAMP(나중에 MAMP 사용법 정리하기)
1. 웹해킹이란
: 웹 서비스 상에서 발생될 수 있는 모든 보안 허점을 이용해 악의적인 행위를 하는 것
2. 방화벽과 웹 해킹
방화벽: ip, port 기반으로 패킷 필터링(4계층)
ssh, telnet, ftp와 같이 외부 접속이 필요없는 서비스 말고 대외 서비스가 필요한 것만 허용 = 인바운드에서 80, 443만 허용
- 방화벽이 없었을 때: 원격 공격만으로도 가능
- 방화벽 등장: 접근 가능한 웹에 대한 공격↑
모바일 앱도 결국 웹 서버와 통신을 함(api 통신을 하니까)공격자 관점에선 유일한 공격 경로로 웹 서비스가 됨
3. 웹해킹의 목표
- 예전: 과시(해킹 자체)
- 오늘날: 이윤(돈)
4. 해킹 과정
- 터널링을 통한 사설망 접근
: 해당 네트워크에서 지원하지 않는 프로토콜을 사용하여 네트워크를 통해 데이터를 전송하는 방법
A 네트워크가 지원하지 않는 B 프로토콜의 패킷을 A 네트워크가 지원하는 프로토콜의 패킷으로 래핑(wrapping)하는 것을 통해 방화벽 우회 - 내부 시스템 및 내부 DB 추가 해킹 → 정보 탈취
- 오피스망 침투, 개인 PC 해킹 → 랜섬웨어
- 내부 시스템을 통한 배포, 이메일을 통한 악성코드 실행
- 개인정보/대외비정보는 팔아야 이윤이 남지만 랜섬웨어는 해커가 돈을 받을 수 있음
5. 웹해킹 발생 원인
- 입력값 검증 부재
- injection류
- xss
- 취약한 인증 및 접근 통제(인증된 사용자인지 검증)
- 중요정보 노출
- 웹 프록시 도구를 통한 노출
- 과도한 에러메세지 출력(힌트 제공)
- 부적절한 설정
- 세션 타임아웃 관련
- web-inf 관련
: 브라우저에서 직접 접근이 불가능한 경로(JSP) - WAS에서 접근 불가한데 WS에서 접근이 가능한 경우
- 서버/프레임워크 취약점
- 스트럿츠(Struts) 취약점
: 아파치 스트럿츠에서 발견된 원격 코드 실행(RCE)을 허용하는 취약점. (CVSS3 기준 9.8 심각도)
아파치 스트럿츠(Apache Struts)
: 아파치 스트럿츠(Apache Struts)는 Java EE 웹 애플리케이션을 개발하기 위한 오픈 소스 프레임워크로 Java어플리케이션과 JSP와 같은 자원 간의 관계 지정
- 스트럿츠(Struts) 취약점
- 설계 오류
6. 웹 해킹 필수도구
프록시 서버란?
: 클라이언트 프로그램과 웹 서버 사이에서 중개자 역할을 하는 서버, 로컬 상에 있을수도 있다.
장점
1. 두 호스트를 직접 통신할 수 없음 → 안전성 향상
2. 요청된 내용 캐싱 → 동일 요청시 시간, 리소스 절약 가능
프록시 종류
1. 포워드
: 사용자가 프론트에 접근하기 전에 프록시 서버를 거침
- 특정 사이트 접속을 막을 수 있다.(학교, 회사, 공공기관 등에서)
- 캐싱을 통한 부하 줄이기
- 클라이언트의 요청이 포워드 프록시 서버를 지날 때 암호화하여 클라이언트 IP 노출 X
2. 리버스
: 사용자가 프론트에 요청을 보내면 백에 보내기 전에 프록시 서버를 거침
클라이언트와 내부 서버의 직접적인 통신을 막는다
- 로드 밸런싱(부하 분산)
- 내부 서버 IP 노출 X → DDoS 방어 가능
- 캐싱, 암호화
3. 오픈
: 누구나 자유롭게 접속하여 사용할 수 있는 프록시 서버
사용자의 IP를 공개하지 않아 익명 활동이 가능하나 악용될 수 있다.
웹해킹에서의 역할
웹 해킹시 요청/응답 메세지의 특정값 변조 가능
=> 프록시 도구로 상세히 볼 수 있다(웹 해킹에서 필수!)
웹 프록시의 요청에 의한 응답을 통해 디테일한 분석 및 공격 포인트 유추 가능
종류
1. 버프스위트
2. 파로스
3. 피들러
4. ZAP
'Security > 취약점분석' 카테고리의 다른 글
| [BackDoor] 섹션5. XSS (0) | 2024.05.23 |
|---|---|
| [BackDoor] 섹션4. XXE Injection (0) | 2024.05.23 |
| [BackDoor] 섹션3. OS Command Injection (0) | 2024.05.23 |
| [BackDoor] 섹션 2. SQL Injection (0) | 2024.04.06 |
| [BackDoor] 취약점 분석/aws 1주차 (0) | 2024.04.01 |