之前寫過一篇青少年版的Heap Spray:Heap Spray淺析 MS06-055?當(dāng)時沒覺得Heap Spray的強大之處丢郊,直到嘗試超星4.0的ActiveX的漏洞挖掘與利用被饿,才驚覺Heap Spray的強大與瀏覽器漏洞的危害秸弛。
0x00 COMRaider
一個ActiveX的Fuzz工具铭若,IDE方便上手。(疑似碰到unicode字符串轉(zhuǎn)換的問題胆屿,后來又莫名其妙好了奥喻,mark一下)
0x01 你根本不是這樣的qmemcpy!
心路歷程:
1.崩不了非迹?崩不了环鲤?最后扛著COMRaider自己挖,然后發(fā)現(xiàn)是clsid找錯了
2.其實這是就發(fā)現(xiàn)隱隱約約哪里有些奇怪憎兽,當(dāng)時歸因于自己對javascript的語法不了解冷离。究其原因就是自己照書打譜慣了在sp2上玩慣了吵冒,思維僵化。
3.覆蓋返回地址的時候頓顯端倪西剥,有的地址可以痹栖,有的地址就會被魔改?仍然以為是unicode的問題瞭空。樂此不疲棧溢出揪阿,shellcode被魔改。
4.最后偷瞄書咆畏,heap spray南捂?!放到堆里就不會被魔改了哦旧找,同時意識到ActiveX漏洞危害大的原因之一就在于可以用javascript之類的腳本語言進行很多操作溺健,就比如這里堆的申請。
回過頭再看钮蛛,原來LoadPage輸入的數(shù)據(jù)會經(jīng)過一個WideCharToMultibyte()函數(shù)進行魔改鞭缭。由于ascii支持的范圍是0x00-0x7f,所以0x7f-0xff的數(shù)據(jù)就會發(fā)生無法轉(zhuǎn)碼的情況魏颓。