首页
社区
课程
招聘
7
[原创]皮皮播放器超长URL溢出漏洞(0day)
发表于: 2011-3-17 17:58 8215

[原创]皮皮播放器超长URL溢出漏洞(0day)

2011-3-17 17:58
8215
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
在sub_430c20函数中
。。。。。。
//用户输入URL后,会执行到这里
    case 32780:
      v9 = *(_DWORD *)(wParam + 4096);
      v22 = 0;
      v21 = v9;
      *(_DWORD *)(wParam + 6344) = 1;
      sub_40D480(v21, v22);
      v42 = 5;
      if ( CDialog::DoModal(&v31) == 1
        && ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::Find(&v32, "://", 0) > 0 ) //判断输入的URL中是否有://字符串
      {
        v10 = (const char *)ATL::CSimpleStringT<char_1>::operator char_const__(&v32);
        if ( strnicmp(v10, "ppfilm://", 9u)     //判断输入的URL中是否有ppfilm字符串
          && (v11 = (const char *)ATL::CSimpleStringT<char_1>::operator char_const__(&v32), strnicmp(v11, "pvod://", 7u)) )//判断输入的URL中是否有pvod://字符串
        {
          v22 = 0;
          v21 = v12;
          v29 = &v21;
          ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>(
            &v21,
            &Default);
          v20 = v13;
          v28 = &v20;
          LOBYTE(v42) = 6;
          ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>(
            &v20,
            &Default);
          v18 = v14;
          *(_DWORD *)&Drive = &v18;
          v41 = 7;
          ATL::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>::CStringT<char_StrTraitMFC_DLL<char_ATL::ChTraitsCRT<char>>>(&v18);
          LOBYTE(v42) = 5;
          sub_4304F0(v3, v19, v20, v21, v22);
        }
        else
        {
          CommandLine = 0;
          memset(&v34, 0, 0x1FCu);
          v35 = 0;
          v36 = 0;
          //通过这个函数,将输入的URL和路径一起拼成jfCacheMgr.exe的参数,然后并执行jfCacheMgr.exe这个进程。
          sprintf(&CommandLine, "%s%s \"%s\"", dword_48AF30, "jfCacheMgr.exe", v32); //最后把结果放到CommandLine中,由于未对输入的URL的长度进行检测,从而造成溢出。
          memset(&StartupInfo, 0, sizeof(StartupInfo));
          ProcessInformation.hProcess = 0;
          ProcessInformation.hThread = 0;
          ProcessInformation.dwProcessId = 0;
          ProcessInformation.dwThreadId = 0;
          StartupInfo.cb = 68;
          CreateProcessA(0, &CommandLine, 0, 0, 0, 0, 0, 0, &StartupInfo, &ProcessInformation);
          if ( ProcessInformation.hThread )
            CloseHandle(ProcessInformation.hThread);
          if ( (_DWORD)ProcessInformation.hProcess )
            CloseHandle(ProcessInformation.hProcess);
        }
      }
。。。。。。

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

收藏
免费 7
支持
分享
赞赏记录
参与人
雪币
留言
时间
Youlor
为你点赞~
2024-5-31 06:11
伟叔叔
为你点赞~
2024-3-25 00:00
心游尘世外
为你点赞~
2024-2-6 00:00
飘零丶
为你点赞~
2024-1-26 00:43
QinBeast
为你点赞~
2024-1-23 03:05
shinratensei
为你点赞~
2024-1-18 04:24
PLEBFE
为你点赞~
2023-3-10 05:14
最新回复 (10)
雪    币: 284
活跃值: (16)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
膜拜啊膜拜,膜拜再膜拜
2011-3-17 18:23
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
3
覆盖异常绕过GS?
忘记了
2011-3-17 19:07
0
雪    币: 500
活跃值: (205)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
4

面对GS真得无解了么?
2011-3-17 23:14
0
雪    币: 678
活跃值: (101)
能力值: ( LV2,RANK:150 )
在线值:
发帖
回帖
粉丝
5
GS应该有解吧。好像有通过SEH来利用的,记得泉哥写过一篇http://bbs.pediy.com/showthread.php?t=123572这里只是讲了方法,还是动手实践才是王道。想办法试试。
2011-3-17 23:26
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
泉哥的那偏文章感觉很好
2011-3-18 00:43
0
雪    币: 207
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
7
不是说,只要SEH没保护就可以通过SEH绕过GS吗?
不懂
2011-3-18 20:08
0
雪    币: 500
活跃值: (205)
能力值: ( LV13,RANK:270 )
在线值:
发帖
回帖
粉丝
8
当然没这么简单。
要利用SEH绕过GS,
首先必须触发异常,如果程序中没有异常,则必须想办法制造异常并触发。
2011-3-19 21:44
0
雪    币: 261
活跃值: (83)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
9
一般安装皮皮的机器上都安装有360浏览器,可以利用一下这个浏览器的BUG
2011-3-19 22:09
0
雪    币: 146
活跃值: (182)
能力值: ( LV13,RANK:220 )
在线值:
发帖
回帖
粉丝
10
神马bug哈
2011-3-21 22:26
0
雪    币: 35
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
楼主看看泉哥帖子
2011-3-21 23:48
0
游客
登录 | 注册 方可回帖
返回

账号登录
验证码登录

忘记密码?
没有账号?立即免费注册