涉及程序: IMP 2.2.x 描述: IMP 2.x 存在SQL注入缺陷 详细: IMP是一款用PHP写的非常受欢迎的webmail程序。IMP附带在许多UNIX系统上,另外也可使用在Windows服务器上。 IMP 2.x 被发现存在SQL注入缺陷。远程攻击者利用此缺陷可非法访问目标 webmail 系统的数据库,而无需任何身份验证。 这是 IMP 2.x 的被叫做 lib/db 的PHP文件中的一些数据库函数存在的安全缺陷引起的。Jouko Pynnonen
提供的攻击实例: $ lynx \"http://webmail.server/imp/mailbox.php3?actionID=6&server=x&imapuser=x\`;somesql+--&pass=x\" IMP 将会尝试着去运行 \"somesql\",并在web页面上错误地显示一些类似如下信息: Warning: PostgreSQL query failed: ERROR: parser: parse error at or near \"somesql\" in /usr/share/horde/imp/lib/db.pgsql on line 127 在这个实例中,虽然并不能直接访问目标系统的SQL请求结果,但是攻击者完全可以通过升级他们的mail签名,使升级的签名中含有所需请求结果,再在IMP的 preferences 页面中进行查看。虽然这样要求攻击者进行合法登陆,但是这对攻击者来说根本就不是问题,因为IMP是允许任意远程IMAP服务器使用的。即使通过IMP的server_list选项也不起作用,受攻击者控制的IMAP服务器在URL中依然会绕过mailbox.php3的限制。 受影响程序: IMP 2.2.x 不受影响程序: IMP 3.x 攻击方法: $ lynx \"http://webmail.server/imp/mailbox.php3?actionID=6&server=x&imapuser=x\`;somesql+--&pass=x\" IMP 将会尝试着去运行 \"somesql\",并在web页面上错误地显示一些类似如下信息: Warning: PostgreSQL query failed: ERROR: parser: parse error at or near \"somesql\" in /usr/share/horde/imp/lib/db.pgsql on line 127 解决方案: 升级到不受影响程序 IMP 3.x 附加信息: 无