본문 바로가기

CVE-2015-5119 분석 3일차 알게된 점1. ByteArrayObject::setUintProperty() 함수 내부적으로 두번째로 call 하는 함수가 o.valueOf()로 의해 리턴되는 값을 통해 정수로 취급한다는 것을 알게 됨.2. ByteArrayObject::setUintProperty() 함수 내부적으로 첫번쨰로 call 하는 함수가 ByteArray의 오프셋을 가져 옴 ba[0x42424242] 모르는 점1. 아직도 정확히 UAF가 트리거 되는 시점을 잘 모르겠다. PoC 코드 가져와서 Heap Tracing을 해 봐야게따.
CVE-2015-5119 분석 3일차 메모 https://github.com/adobe/avmplus/blob/858d034a3bd3a54d9b70909386435cf4aec81d21/core/ScriptObject.cpp#L589 https://github.com/adobe/avmplus/blob/858d034a3bd3a54d9b70909386435cf4aec81d21/core/ScriptObject.h#L109 https://github.com/adobe/avmplus/blob/master/core/atom.h#L76 https://github.com/adobe/avmplus/blob/master/core/AvmCore.cpp#L2157 https://github.com/adobe/avmplus/blob/master/core/ByteArray..
CVE-2015-5119 분석 2일차 알게 된 점1. 대충 UAF가 트리거 되는 과정은 이해가 된다2. 문자열과 함수간의 거리 계산을 통해 한개의 함수 심볼만 알아도 다른 함수의 심볼을 구할 수 있다. 힘든점1. 많이 피곤하다 ㅠㅠ
Codegate 2017 junior from string import ascii_lettersfrom base64 import * target = ['T', 'j', 'B', 'f', 'b', 'T', 'R', 'u', 'X', '2', 'M', '0', 'b', 'D', 'F', 'f', 'Y', 'W', 'c', '0', 'a', 'W', '5', 'f', 'W', 'T', 'N', 'z', 'd', 'D', 'N', 'y', 'Z', 'D', 'R', '5', 'O', 'i', 'g', '=']ts = "TjBfbTRuX2M0bDFfYWc0aW5fWTNzdDNyZDR5Oig=" for i in range(len(target)): tmp = [] for k in range(len(ts)): tmp.append(ts[k]) for j i..
CVE-2015-5119 분석 1일차 package { import flash.system.*; import flash.filters.*; import __AS3__.vec.*; import flash.utils.*; public class Main extends Sprite { static var ba:ByteArray; public function Main():void{ var a:* = undefined; var o:* = null; var i:* = 0; var j:* = 0; a = new Array(98); o = new Object(); while (i < 20){ a[i] = new ByteArray(); a[i].length = 210; i += 1; }; i = 20; while (i < 98){ a[i] = new Obj..
CVE-2015-0311 8일차 메모 http://researchcenter.paloaltonetworks.com/2015/06/understanding-flash-exploitation-and-the-alleged-cve-2015-0359-exploit/https://github.com/adobe/avmplus/commit/a92318ac8ff12fb7f6189d0ce9ef53d5e9cf1618https://recon.cx/2012/schedule/attachments/43_Inside_AVM_REcon2012.pdfhttp://wwwimages.adobe.com/content/dam/Adobe/en/devnet/actionscript/articles/avm2overview.pdf
CVE-2015-0311 분석 7일차 Console Log 0:005> .echo AD_ENV;dd 04bac054;.echo ba;dd 04c9905c AD_ENV04bac054 04cbc000 000006c2 04c99040 0000000304bac064 04bac040 04cfa070 04cfafd0 0000000004bac074 00000000 04bac0b0 00000000 0000000004bac084 00000000 00000000 00000000 0000000004bac094 00000000 00000000 00000000 0000000004bac0a4 00000000 00000000 00000000 04bac0e804bac0b4 00000000 00000000 00000000 0000000004bac0c4 00000000 0..
CVE-2015-0311 분석 6일차 알게된 점1. toString 후킹하여 브레이킹 포인트 걸기2. ByteArray.buffer 주소 구함. 모르는 것1. ByteArray의 실제 주소를 모르겠음. 방법은 여러가지 생각이 남.2. 힙 스프레이 ByteArray 실제 주소 구하는 방법 아이디어1. compress()함수의 인자로 넘어 오는것 분석.2. 힙 스프레이3. 힙 트레이싱