1.分析一下存在漏洞文件 logincheck_code.php 從代碼中我們可以控制的有UID,CODEUID然后判斷$login_codeuid是否存在,不存在或者為空就退出,然后將獲取的UID,帶入到sql語句進行查詢,后面會驗證查詢的結果,如果信息核對正確,則將個人信息放入到SESSION中,UID=1的時候默認是管理員,而UID我們可以輸入一個1,就可以滿足查詢ql,而我們現在要繞過if (!isset($login_codeuid) || empty($login_codeuid)){exit();},全局搜索一下$login_codeuid可不可以控制
2.分析一下/general/login_code.php,發現存在$login_codeuid 如果$login_codeuid為空,則給$login_codeuid賦一個隨機值,并且使用echo打印出來
3.那我們的思路是:先去訪問/general/login_code.php,獲得$login_codeuid,再去訪問logincheck_code.php,同時POST傳入獲取的$login_codeuid和UID=1,獲得返回包的PHPSESSID,在使用火狐瀏覽器偽造COOKiE,登錄后臺
4.漏洞復現,將獲得的code_uid保存下來,進行下一步,將獲取的PHPSESSID保存下來,使用火狐瀏覽器偽造COOKIE,同時訪問/general/index.php,便可以進入后臺
5.后臺GetShell(靶機環境windows7 通道OA用的是MYOA2017)依次點擊系統管理-附件管理-添加存儲目錄,選擇根目錄
6.依次點擊組織-系統管理員-附件(下圖標注)
7.直接上傳shell.php不能成功,開啟抓包,上傳shell.php.進行繞過,windows系統會自動去掉.,不符合windows的命名
8.使用冰蝎進行連接
9.實戰(由以上的思路,進入到某站的OA后臺管理系統)
收起