mssp2992015/09/09 14:00 翻译:mssp299 原文地址:https://www.proteansec.com/linux/pfsense-vulnerabilities-part-2-command-injection/ 0x00 导言 在本文中,我们将向大家介绍在PfSense的2.1.3以及更低版本中的CVE-2014-4688漏洞;对于更高的版本来说,pfSense已经修复了这个漏洞。 0x01 Diag_dns.php脚本中的命令注入漏洞 下面展示的是脚本diag_dns.php中存在命令注入漏洞的代码片。我们可以看到,这段代码首先检查POST参数host是否存在,如果存在的话,就将变量$GET的值赋给变量$POST。然后,代码继续检查GET参数createalias的值是否等于true,如果是的话,则把POST参数host的值的首尾空白符去掉:trim()函数的作用就是去掉字符串首尾处的空白符,但是字符串中间部分的空白符则保持不变。之后,还有一些其他语句,不过它们并不是我们这里关注的重点,我们关心的是如何插入在反引号中运行的命令。 /* Cheap hack to support both $_GET and $_POST */ if ($_GET['host']) $_POST = $_GET; if($_GET['createalias'] == "true") { $host = trim($_POST['host']); if($_GET['override']) $override = true; $a_aliases = &$config['aliases']['alias']; $type = "hostname"; $resolved = gethostbyname($host); if($resolved) { $host = trim($_POST['host']); $dig=`dig "$host" A | grep […]