本文仅为了学习交流,严禁非法使用!!!
(随笔仅为平时的学习记录,若有错误请大佬指出)
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/
此文档仅供学习,参与违法行为与笔者无关。