以下内容来源自:微信公众号SKR安全。 感谢SKR安全对点可云的支持与信赖,在SKR安全向点可云反映问题后,点可云团队已经第一时间修复该BUG
此次BUG仅限于点可云开源V6版本,目前已经修复并发布于GIT https://gitee.com/yimiaoOpen/nodcloud
请正在使用该版本的用户 升级!!!
开审!!!!以下内容仅供学习,请勿用作非法用途
所有控制器都继承自 app\index\controller\Acl
两种鉴权方式,一种是checklogin函数中,对cookie进行校验,另一种方式是类似授权码的鉴权。
1.1 checklogin分析
从cookie中拿到Nod_User_Id参数和Nod_User_Token,然后在数据库中查询是否存在这条记录,如果存在,就判定鉴权成功
这里看看登录验证方式和Nod_User_Token是如何产生的。
Nod_User_Token的生成方式是随机的,没有规律可寻,不能伪造。在这里将token等数据插入到了数据库中。
这里有一个点,等会要用到。用户在点注销登录之后,只是将cookie进行了删除,并没有将数据库中的这条数据删除,这种方式其实是有点危险的。
1.2 api_key方式
这里apitime是时间戳,apikey是密钥
主要是用apikey和get_plug_key生成的结果进行比较,如果相等,就鉴权成功
下面对get_plug_key函数进行分析
主要还是api_key,api_key是在安装时,获取当时时间戳后md5截取得到的。
这里其实也可以对api_key进行爆破,但是爆破量非常大,没有意义。
这里看似不能利用了,其实还是有突破点的。
2. 柳暗花明又一村
tinkphp日志中对sql语句的查询进行了记录,里面记录了token和登录密码等内容,如果拿到,那么就可以进入后台了。
点进去一搜,结果真有。
因为对在注销后对token并没有进行销毁,只要找到最近一次插入token的语句,就可以加入cookie,从而进入后台了。
**免责声明**
本网站所载的所有文章内容仅供参考,不构成任何形式的专业建议、意见或判断依据。对于本网站提供的开源代码及免费下载的代码,用户应仅将其用于个人学习、研究或非商业目的,并应在下载后合理期限内完成必要的使用或评估。本网站明确要求用户不得将这些代码用于任何商业用途。
本网站对于所提供的开源代码及免费下载的代码仅用于分享参考,版权归原作者所有。本网站坚决支持并维护软件著作权持有人的合法权益,并强调对原著者的尊重与保护,不会将这些代码用于任何形式的商业盈利目的。
本网站内图片素材、文章内容部分来源于网络收集转载,如有侵权,请联系我们以便及时处理。联系方式:meng#yimiaonet.com(请将“#”替换为“@”)。
未经本网站书面许可,任何个人或组织不得复制、盗用、采集、发布或以其他方式传播本网站的内容至任何形式的网站、书籍、媒体平台或其他公共领域。若本网站内容涉及对原著者合法权益的侵犯,原著者或本网站有权采取法律措施维护自身权益。
本声明由一秒云软件中心发布,并保留随时修改本声明的权利。官方网站信息如下:本站网站:2024.okmg.cn。“OKMG”为本网站注册商标,受法律保护。