本文僅為了學習交流,嚴禁非法使用!!!
(隨筆僅為平時的學習記錄,若有錯誤請大佬指出)
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后台管理系統)
10.修復建議
升級通達 OA 到最新版
參考文章
https://www.chabug.org/audit/1516.html
https://blog.csdn.net/sun1318578251/article/details/105728541/
此文檔僅供學習,參與違法行為與筆者無關。