01. function write($sid, $sess_data){
02. global $sess_save_path, $sess_data_md5, $sess_save_name;
03. $sess_file = $sess_save_path . '/mvm_sess_' . $sid;
04. if($sess_data == ""){
05. mvm_session::debug('不需写入', __line__);
06. return true;
07. }
08. if(md5($sess_data) == $sess_data_md5){
09. mvm_session::debug('不需更新,数据没发生变化', __line__);
10. return touch($sess_file);
11. }
12. else{
13. mvm_session::debug('写入的文件地址:' . $sess_file, __line__);
14. $sess_file_handle = fopen($sess_file, 'w');
15. if($sess_file_handle){
16. return fwrite($sess_file_handle, $sess_data);
17. fclose($sess_file_handle);
18. }
19. else
20. {
21. return false;
22. }
23. }
24. }
25. 只要我们控制了 $sid 和$sess_data的话。那么SHELL就能写进去了。
26.
27. 再看。header.php文件的 94行开始:
28. if($style_id){
29. unset( $_SESSION['mvm_style_id']);
30. $_SESSION['mvm_style_id'] = $style_id;
31.}elseif ($_SESSION['mvm_style_id']){
32. $style_id = $_SESSION['mvm_style_id'];
33.}else {
34. $style_id = $mm_default_style;
35.}