首页 -> 安全研究

安全研究

安全漏洞
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(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障