XSS
- 스크립트를 웹사이트에 주입한다. (javascript)
- 사용자가 특정 웹사이트를 신용하는 점 이용
- Client 대상 공격
ex) XSS를 통한 iframe으로 Drive by Download 공격 유발, 사용자 쿠키 정보 공격자 서버로 전송 등
ㄴ종류 :
- Stored XSS : 악의적 스크립트가 서버의 데이터베이스에 저장되어, 누군가가 열람할 때마다 실행. 보통 게시글을 통함
- Reflected XSS : 사용자가 접속할 때, 열람시 바로 실행됨. (요청에 따른 응답) 일반적인 예시로, 로그인 시, "00님 안녕하세요~" 라는 문자열을 예시로 들 수 있음
ex) <img src=
ex) <a href="javascript:window.location.href"='url'">
CSRF (Cross Site Request Forgery) : 사이트간 요청위조
- 사용자가 요청하지 않은 정보 처리
- 웹 애플리케이션이 사용자의 브라우저를 신용하는 점
- 서버자체의 요청을 모니터링
- 정상적인 요청과 비정상적인 요청을 웹 애플리케이션이 구분하지 못하는 경우, 조작된 요청을 전송하도록 하는 공격
- Server, 웹 애플리케이션을 사용하는 사용자 대상 공격
- 변조된 요청을 웹 브라우저(Client)가 보냄
- 공격자는 피해자의 웹 브라우저에서 자신이 조작한 패킷을 웹 애플리케이션 서버로 전달
- 거점이 CLIENT
ex) tomcat으로 구동되는 웹서버의 관리자에게 CSRF를 수행하여 (웹 서버에 조치를하고, 관리자가 접속할 수 있도록 미끼를 둔다), 관리자의 권한으로 서버를 셧다운
ex) CSRF를 수행할 수 있는 코드가 저장된 게시글이 있다. 이 악성코드는 게시글을 열람한 사용자의 권한으로 "메롱" 이라는 게시글을 생성할 수 있다. 사용자 지우(j222u)는 해당 게시글을 열람하였고, j222u가 작성자로 된 "메롱"이라는 게시글이 생성되었다. 그러나, 이것은 지우가 생성한 글이 아니다.
SSRF (Server Side Request Forgery) : 서버측 요청위조 (OWASP TOP 10 2021)
- 웹 서버 공격
- 변조된 요청을 웹 애플리케이션이 보냄 (공격자 악의명령 -> 애플 -> 로컬에서 수행)
- 웹 애플리케이션이 사용자가 제공한 URL의 유효성을 검사하지 않고 원격 리소스를 가져올 때 발생
- 서버를 직접 호출!
- 서버 내부의 /etc/passwd는 외부에서 직접 접근이 불가하지만, 웹애플리케이션이 /etc/passwd에 접근하도록 하면 접근이 가능!
- 거점이 서버
- 변조된 요청을 웹 애플리케이션이 보냄
ex) 127.0.0.1/../../../../../../../../../../../etc/passwd [[ 루프백 주소
- 클라우드 내에 이 방식으로 접근하여 클라우드 설정 변경 등 수행
ex) 공격자가 입력하는 url을 내부 서버 주소로 변경 여러뭄
ㄴ 관련사고
- 캐피털 원(Capital One) 데이터 침해 사건
ㄴ방어
- URL 주소에 대한 필터링 방법을 사용
방어
- 애플리케이션 실행 권한은 관리자가 아닌, 최소 권한으로 실행
- 입력값 검사
궁금증
1) <img src="js ">
참고자료
https://www.itworld.co.kr/howto/211794
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=aepkoreanet&logNo=221567575013