close
原理: 1. 先將EIP 指向Heap的0x0C0C0C0C 位置
2. JavaScript 申請大量Heap memory(即向heap申請超長的由同一字母组成的Unicode字串),用包含著0x90(NOP指令) 和shellcode(1M內存的尾部)
的“內存片(1M)”覆蓋這些memory。Unicode字串不斷複製並追加在原本字串後,長度增加到引擎允許的最大長度後,一條指令將會加到字符串的
末尾。
原因: JavaScript 會從內存低址向高址分配內存,因此申請的內存超過200MB(200MB=200×1024×1024 = 0x0C800000 > 0x0C0C0C0C)後,
0x0C0C0C0C 將被含有shellcode 的內存片覆蓋。只要memory 中的0x90 能夠命中0x0C0C0C0C 的位置,shellcode 就能最終得到執行。
實作:
參考: https://itw01.com/OJQ3EKP.html
全站熱搜
留言列表