| Reporter | Title | Published | Views | Family All 8 |
|---|---|---|---|---|
| EmpireCMS 6.6 PHP Code Execution Vulnerability | 6 Nov 201200:00 | – | zdt | |
| CVE-2012-5777 | 16 Nov 201200:00 | – | cve | |
| CVE-2012-5777 | 16 Nov 201200:00 | – | cvelist | |
| EUVD-2012-5660 | 7 Oct 202500:30 | – | euvd | |
| CVE-2012-5777 | 16 Nov 201200:55 | – | nvd | |
| Sql injection | 16 Nov 201200:55 | – | prion | |
| [CVE-2012-5777]EmpireCMS Template Parser Remote PHP Code Execution Vulnerability | 6 Nov 201200:00 | – | securityvulns | |
| Web applications security vulnerabilities summary (PHP, ASP, JSP, CGI, Perl) | 6 Nov 201200:00 | – | securityvulns |
`
# Exploit Title: EmpireCMS Template Parser Remote PHP Code Execution Vulnerability
# Date: 2012-11-1
# Author: flyh4t
# Software Link: http://www.phome.net
# Version: EmpireCMS 6.6
# CVE :
EmpireCMS Template Parser Remote PHP Code Execution Vulnerability
---------------------------------
By fly
Mail:[email protected]
Site:bbs.wolvez.org
---------------------------------
Empire CMS is a widely used CMS in china. Official website is www.phome.net.
I have found a remote PHP code-execution vulnerability in EmpireCMS 6.6 (the lastest version).
This issue occurs in the application's template parser.
An
attacker can exploit this issue by enticing an unsuspecting victim to
install a malicious template,can inject and execute arbitrary malicious
PHP code in the context of the webserver process.
This may facilitate a compromise of the application and the underlying system; other attacks are also possible.
[-] details :
Here is a function for template parser in /e/class/connect.php
---------------------------------
function ReplaceListVars($no,$listtemp,$subnews,$subtitle,$formatdate,$url,$haveclass=0,$r,$field,$docode=0){
global $empire,$public_r,$class_r,$class_zr,$fun_r,$dbtbpre,$emod_r,$class_tr,$level_r,$navclassid,$etable_r;
if($haveclass)
{
$add=sys_ReturnBqClassname($r,$haveclass);
}
if(empty($r[oldtitle]))
{
$r[oldtitle]=$r[title];
}
if($docode==1)
{
//here is the vul code
//$listtemp is passed to function eval and not checked.
$listtemp=stripSlashes($listtemp);
eval($listtemp);
}
......
}
---------------------------------
Many other files used this function,here is one place:
---------------------------------
// /e/action/ListInfo/index.php line 120
//get template from datebase which may contain PHP code we have injected into database.
$tempr=$empire->fetch1("select
tempid,temptext,subnews,listvar,rownum,showdate,modid,subtitle,docode
from ".GetTemptb("enewslisttemp")." where tempid='$tempid'");
......
$listtemp=$tempr[temptext];
$rownum=$tempr[rownum];
if(empty($rownum))
{$rownum=1;}
$formatdate=$tempr[showdate];
$subnews=$tempr[subnews];
$subtitle=$tempr[subtitle];
$docode=$tempr[docode];
$modid=$tempr[modid];
$listvar=str_replace('[!--news.url--]',$public_r[newsurl],$tempr[listvar]);
// $listvar contain PHP code we have injected
......
while($r=$empire->fetch($sql))
{
$repvar=ReplaceListVars($no,$listvar,$subnews,$subtitle,$formatdate,$url,$have_class,$r,$ret_r,$docode);
//here lead to execute php code
------------------------------
[-] Disclosure timeline:
[19/10/2012] - Vulnerability discovered
[20/10/2012] - Vendor notified,No responsed
[01/11/2012] - CVE number requested
[02/11/2012] - Assigned CVE-2012-5777
[05/11/2012] - Public disclosure
`
Data
Build on a solid foundation with Vulners data
We provide the essential building blocks for cybersecurity solutions with comprehensive, structured, and constantly updated vulnerability and exploits data
Api
Power your application with Vulners API
The Vulners REST API offers reliable, high-performance access to vulnerability intelligence, with 99.9% SLA uptime and CDN-backed data delivery for seamless global access
App
Assess and manage vulnerabilities with Vulners tools
Built on top of Vulners' database and SDK, end-user solutions give security professionals and developers lightweight and powerful tools for vulnerability remediation