### 0x01 框架概述 泛微e-office是泛微公司面向中小型组织推出的OA产品,简单易用高效,部署快、投资少。提供免费试用体验。至今已为超过一万家客户提供方便高效的办公体验. 官方主页: www.weaver.com.cn 主页截图如下。  ### 0x02 漏洞信息 先对系统进行解密。 /inc/priv_user_list/priv_xml.php 大概18行开始 ``` $pararr = explodestpar( $_REQUEST['par'] ); $userpriv = $pararr['userpriv']; ... if ( $pararr['view_type'] == 0 ) { unset( $deptnameutf8 ); unset( $action ); unset( $src ); unset( $target ); unset( $icon ); $usql = "\r\n\t\t\tSELECT * FROM USER,USER_PRIV \r\n\t\t\t\tWHERE USER.USER_PRIV=".$userpriv." \r\n\t\t\t\tAND USER.USER_PRIV=USER_PRIV.USER_PRIV \r\n\t\t\t\tORDER BY PRIV_NO,USER_NAME\r\n\t\t\t"; $urs = exequery( $connection, $usql ); ``` $pararr = explodestpar( $_REQUEST['par'] );获取到request后,调用explodestpar处理,将$pararr['userpriv']传入SQL语句。 看看explodestpar函数: ``` function explodeStPar( $enpar ) { $depar = base64_decode( $enpar ); $arrpar = explode( "|", $depar ); if ( !is_array( $arrpar ) )...
### 0x01 框架概述 泛微e-office是泛微公司面向中小型组织推出的OA产品,简单易用高效,部署快、投资少。提供免费试用体验。至今已为超过一万家客户提供方便高效的办公体验. 官方主页: www.weaver.com.cn 主页截图如下。  ### 0x02 漏洞信息 先对系统进行解密。 /inc/priv_user_list/priv_xml.php 大概18行开始 ``` $pararr = explodestpar( $_REQUEST['par'] ); $userpriv = $pararr['userpriv']; ... if ( $pararr['view_type'] == 0 ) { unset( $deptnameutf8 ); unset( $action ); unset( $src ); unset( $target ); unset( $icon ); $usql = "\r\n\t\t\tSELECT * FROM USER,USER_PRIV \r\n\t\t\t\tWHERE USER.USER_PRIV=".$userpriv." \r\n\t\t\t\tAND USER.USER_PRIV=USER_PRIV.USER_PRIV \r\n\t\t\t\tORDER BY PRIV_NO,USER_NAME\r\n\t\t\t"; $urs = exequery( $connection, $usql ); ``` $pararr = explodestpar( $_REQUEST['par'] );获取到request后,调用explodestpar处理,将$pararr['userpriv']传入SQL语句。 看看explodestpar函数: ``` function explodeStPar( $enpar ) { $depar = base64_decode( $enpar ); $arrpar = explode( "|", $depar ); if ( !is_array( $arrpar ) ) { return false; } $i = 0; for ( ;$i < sizeof( $arrpar );++$i) { $strpar = $arrpar[$i]; $tmparr = explode( ":", $strpar ); $j = 0; for ( ;$j < sizeof( $tmparr );++$j) { if ( $j == 0 ) { preg_match( "/\\[([a-z0-9-_].+)\\]/i", $tmparr[$j], $exp ); $par = $exp[1]; } else { preg_match( "/\\[(.*)\\]/i", $tmparr[$j], $exp ); $val = $exp[1]; } } if ( trim( $par ) != "" ) { $rearr[$par] = $val; } } return $rearr; } ``` 大概是base64解码后7788处理一堆,出来一个数组。 既然是base64解码后的,所以可以有任何字符。不过本来这个注入点也没有单引号限制,所以也是直接注入的。 案例: 加单引号1',报错  爆出绝对路径 ### 0x03 参考链接 http://www.wooyun.org/bugs/wooyun-2015-0105290/