安全研究
安全漏洞
DNSTools表单变量输入验证漏洞
发布日期:2000-03-03
更新日期:2000-03-03
受影响系统:DNSTools Software DNSTools 1.8
描述:
来源:Jonathan Leto <jonathan@leto.net>
DNSTools Software发布的DNSTools 1.8版中存在安全漏洞,攻击者通过修改特定的表单变量,能够执行任意代码。
以下是有问题的代码:
$host_name = $CGI->param("host_name");
$domain_name = $CGI->param("domain_name");
$error_description = "";
my $error_code = system("/usr/local/dnstools/delete_mx -d \"$domain_name\" -n \"$host_name\"");
可以看到,对客户端的输入值缺少有效性检查和过滤。攻击者利用这些输入变量能以web服务器的运行权限执行任意命令。
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
攻击代码的关键是使system()调用执行攻击者指定的命令。如以下代码会列表当前目录:
GET /~jed/cgi-bin/test.pl?domain_name=\"\;ls\" HTTP/1.0
建议:
临时解决方法:禁止DNSTools CGI程序。或者编辑源代码增加以下字符过滤:
if(!($domain_name =~ /^[a-zA-Z]*$/)) { print "Error"; exit -1;};
浏览次数:6469
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载 绿盟科技给您安全的保障 |