Rapid7 Vulnerability & Exploit Database

Tiki Wiki unserialize() PHP Code Execution

Back to Search

Tiki Wiki unserialize() PHP Code Execution



This module exploits a php unserialize() vulnerability in Tiki Wiki <= 8.3 which could be abused to allow unauthenticated users to execute arbitrary code under the context of the webserver user. The dangerous unserialize() exists in the 'tiki-print_multi_pages.php' script, which is called with user controlled data from the 'printpages' parameter. The exploit abuses the __destruct() method from the Zend_Pdf_ElementFactory_Proxy class to write arbitrary PHP code to a file on the Tiki Wiki web directory. In order to run successfully three conditions must be satisfied (1) display_errors php setting must be On to disclose the filesystem path of Tiki Wiki, (2) The Tiki Wiki Multiprint feature must be enabled to exploit the unserialize() and (3) a php version older than 5.3.4 must be used to allow poison null bytes in filesystem related functions. The exploit has been tested successfully on Ubuntu 9.10 and Tiki Wiki 8.3.


  • EgiX
  • juan vazquez <juan.vazquez@metasploit.com>







Module Options

To display the available options, load the module within the Metasploit console and run the commands 'show options' or 'show advanced':

msf > use exploit/unix/webapp/tikiwiki_unserialize_exec
msf exploit(tikiwiki_unserialize_exec) > show targets
msf exploit(tikiwiki_unserialize_exec) > set TARGET < target-id >
msf exploit(tikiwiki_unserialize_exec) > show options
    ...show and set options...
msf exploit(tikiwiki_unserialize_exec) > exploit

Time is precious, so I don’t want to do something manually that I can automate. Leveraging the Metasploit Framework when automating any task keeps us from having to re-create the wheel as we can use the existing libraries and focus our efforts where it matters.

– Jim O’Gorman | President, Offensive Security