声明:该公众号大部分文章来自作者日常学习笔记,未经授权,严禁转载,如需转载,联系洪椒攻防实验室公众号。请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与文章作者和本公众号无关。
0x00 前言
某次HW行动中,看到其他队伍的报告,通过修改cookie值中的特定参数来达到越权的目的。
直接修改KcUser参数即可越权查看用户密码。看到这我惊呆了,多少年没遇见过这种漏洞了,上一次还是2019年刚学安全不久的时候遇到过,后面就经常测试这种漏洞,但是很长一段时间都没遇到过,所以也就慢慢的不再关注这种漏洞。因为按照常理来说,cookie中有SessionId这种参数,一般都是用SessionId进行鉴别用户身份。很难存在越权漏洞。但是现学现用,自这之后我就开始注意到cookie中的参数。
刚好最近红队评估一个接一个,某次红队评估项目中遇到一个系统,这是一个提前两天打点的一个系统 存在弱口令,并且存在任意文件上传,我就用jpg内容改了一下aspx格式,证明存在漏洞就放那了,心想口子这不就来了吗?你不穿谁穿?
结果正式开打之后就404了:
我日*********,应该是有态感监测到了aspx上传行为,开发直接给这个功能删了。普通用户权限下只有这一个上传点,心想管理员是不是有其他的上传点。至此开始超细节的权限提升之路。
0x01 开始操作
首先看看修改密码处,验证原密码,无法实现越权操作。
观察cookie,存在多个SessionID等多个参数。
按常理来说,大部分的判断用户身份的应该都是SessionId对吧?在之前我可能会到此为止了,但是我想到了前不久有师傅提到了改cookie中的参数,直接现学现用:打开我的资料处:
存在一个随机加密的用户id,get请求中及cookie、返回包中均存在该id,那我们怎么拿到这个id呢?
cookie中还有一个Value参数,是当前用户的用户名:
改为admin是不是就可以了?但是很遗憾 不行。到这大多数师傅们应该是到此为止了。但是我没有!!!!开始细到不行的操作。 既然改Value不行,证明你要么还判断了SessionId,要么是cookie中的key,也就是get请求中的did,因为这个id多次出现。
懒得一个个测试,我直接全给你删咯,只保留个_user参数,并且把Key的值也删了:奇迹时刻,直接越权查看到了admin的信息,拿到id不就简单了吗!!!
其实在刚刚测试中,删除SessionId的值就可以了,既然不用校验SessionId,我们也有了管理员的id,后面的操作师傅们应该就有思路了。
只需要找到管理员的用户管理模块的url地址,就可以实现完美的越权操作。打开首页,可以看到有个菜单栏,能获取到当前用户的所有权限功能模块:
找到请求该菜单的接口,这时候我们只需要将该cookie中的id替换为刚刚我们获取到的管理员id即可:
既然得到了用户管理的url,带上cookie,直接重置密码或者创建管理员账户就都可以了,两万多个用户:
直接重置admin的密码: 虽然拿到管理员账户了 但是两个编辑器上传点都限制了,没办法getshell了,只能拿着两万个用户去爆破其他系统。这个系统就到此为止了xdm。
0x02 总结一下
越权漏洞的小tips,这种漏洞可能会不常见,但肯定会有,xdm平时可以关注一下。
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放