처음부터 차근차근
인증 쿠키값 속이기, 파일 업로드 공격, zipbomb 본문
쿠키와 세션의 차이점
쿠키 | 세션 | |
저장되는 곳 | 클라이언트 | 서버 |
저장형태 | 텍스트 형식 | Object 형 |
만료기간 | 저장시 설정하는데 설정하지 않으면 브라우저 종료시 소멸 | 정확한 시점을 알 수 없음 |
자원 | 한 도메인에 20개, 쿠키당 4KB, 총 300개 | 서버가 허용하는 한 용량에 제한 없음 |
인증쿠키값 속이기(Spoof Authentication Cookie)
-> 쿠키 에디터(Cookie Editor)를 사용해서 쿠키 값을 바꿔 로그인 세션을 변경한다.
절차 정리
1. ID:webgoat로 로그인하여 sessionID1를 생성한 후, sessionID1의 쿠키를 저장
2. 다른 사용자 ID:aspect로 로그인하여 sessionID2의 쿠키를 저장
3. 다시 ID: aspect로 로그인
4. 쿠키에디터를 이용하여 sessionID2의 쿠키 를 sessionID1의 쿠키로 수정-> 서버로 보냄
5. 서버는 ID: webgoat로 착각하여 ID: webgoat의 자료를 클라이언트에 넘겨줌
실습
1. 쿠키 에디터 설치
크롬 웹 스토어에서 쿠키 에디터를 설치한다.
2. webgoat 서버 실행
java –jar WebGoat-container-7.1-exec.jar -httpPort 2001
3. 팀원 1의 서버로 가서 로그인한 뒤 [Session Management Flaws] -> [Spoof an Authentication Cookie] 클릭
4. id, 비번 : aspect로 로그인한 뒤 사이트에 '암호를 저장하기' 팝업창에서 예를 눌러 aspect의 쿠키를 저장한다.
5. 쿠키에디터로 가서 AuthCookie 값을 메모장에다 복사해놓는다.
6. 로그아웃하고 다시 id, 비번 : webgoat로 로그인한다.
7. 쿠키에디터로 가서 webgoat의 AuthCookie 값에다 아까 저장해놓은 aspect의 AuthCookie값을 대입한다.
8. 그 다음 Refresh하면 webgoat 사용자가 Cookie에 의해 aspect로 변경된 것을 볼 수 있다.
↓
파일 업로드 공격
파일업로드 취약점
게시판 등에서 스크립트 파일의 업로드에 대한 규제가 없을 경우 이를 악용한 해커에 의해 악성 스크립트 파일이 수행될 수 있는 보안 취약점
파일업로드취약점을 이용하여 악의적이 파일을 업로드하는 방법
- 서버에 업로드할 그림(jpeg)파일을 준비
- 서버에 업로드할 그림 파일이 저장된 경로를 파악
- 서버에 업로드할 악의적일 파일을 준비
- 2 에서 파악한 경로를 이용하여 서버에 악의적인 파일을 업로드
- 서버 공격
실습
1. 조원2의 webgoat 서버로 들어가서 [Malicious Execution] -> [Malicious File Execution] 클릭
2. 그 다음 아무 이미지 파일이나 upload하고, 새로 생긴 이미지 미리보기에서 마우스 오른쪽을 눌러 이미지 주소 복사를 누름. 이렇게 하면 http://ip주소:포트/WebGoat/uploads/cat.jpg 같이 이미지가 업로드되는 경로를 알 수 있음.
이 업로드 경로를 잠시 메모장에다 복붙
3. 서버에다 올릴 악의적인 파일을 하나 만듦
ksyUpload.jsp
<HTML>
<%
java.io.File file = new java.io.File("guest_ksy.txt");
file.createNewFile();
out.println("file created" + request.getRealPath(file.getName()));
%>
<script> alert("ksyfile.jsp is running"); </script>
</HTML>
서버에 ‘guest_ksy.txt’의 파일을 생성하고 ‘ksyfile.jsp is running’의 메시지 상자를 띄우는 파일임
4. 방금 만든 파일을 서버에다 upload
조원의 서버에 guest_ksy.txt가 잘 업로드 된것을 확인함
5. http://ip주소:포트/WebGoat/uploads/ksyUpload.jsp로 url 치고 들어가서 파일 실행
Denial of Service (ZipBomb)
ZipBomb(압축폭탄) 이란
프로그램이나 시스템이 압축파일을 풀 때, 갑자기 용량이 커져서(폭발을 일으킴) 시스템을 종료시키는 악의적인 행위를 일으킬 수 있는 파일이다.
평소에는 평범한 zip파일 이지만 Anti-Virus 소프트웨어 검사를 하려고 시도하는 등 이 파일의 압축을 해제 하는 순간, 컴퓨터가 받아들일 수 없을 만큼의 용량이 되어 해당 프로그램이 종료시킨다.
실습
zipbomb 파일을 다운받는다.
이 zip 파일은
이렇게 압축을 풀기 전에는 1메가도 안되는 파일이지만
압축을 푸는 순간 43MB가 되어버린다.
이 파일을 조원의 서버에다 업로드하는 실습이다.
1. 조원의 webgoat 서버로 들어가서 [Denial of Service] -> [ZipBomb]을 클릭
2. 그 다음 zipbomb를 업로드 한다.
조원의 서버에 zipbomb 파일이 잘 업로드 된 것을 확인했다.
만약 이 서버가 최대 40mb의 저장공간을 사용하는데 이렇게 한 번의 upload로 40mb를 넘어버리는 저장 공간을 모두 사용해버리면 서버가 다운되어 서비스를 못할 것이다.
출처 : 정보보안(22-1학기)고수정교수 강의 내용 변형 및 요약
'정보보안' 카테고리의 다른 글
웹프록시를 이용한 패킷가로채기 (0) | 2022.06.08 |
---|---|
다중 로그인 서비스 거부공격, 코드품질공격 (0) | 2022.05.28 |
blind numeric sql injection, xss, concurrency (0) | 2022.04.27 |
웹해킹- SQL Injection (2) | 2022.04.21 |
웹 해킹 - 사용자 인증 (0) | 2022.04.13 |