您的位置:首页 > 游戏 > 手游 > 在线代理网页版 proxy_适合夫妻的suv_网站优化推广是什么_seo云优化外包

在线代理网页版 proxy_适合夫妻的suv_网站优化推广是什么_seo云优化外包

2024/12/23 1:52:36 来源:https://blog.csdn.net/banliyaoguai/article/details/143277125  浏览:    关键词:在线代理网页版 proxy_适合夫妻的suv_网站优化推广是什么_seo云优化外包
在线代理网页版 proxy_适合夫妻的suv_网站优化推广是什么_seo云优化外包

目录

JumpServer简介

原理

环境搭建

漏洞复现

修复


前端时间做项目的时候遇到这个漏洞,现复现一下。

JumpServer简介

Jumpserver是全球首款完全开源的堡垒机,它主要用于对运维人员的操作行为进行管控、审计,并有效管理服务器、网络设备等资产。

原理

这个漏洞原理是用户点击忘记密码时系统会生成一个随机字符串作为Token并发送到用户邮箱,但是由于某个安全问题导致这个Token可以被推算出来。这个安全问题时由于一个第三方库导致的,这个第三方库是django-simple-captcha库。这个库是Django生态张常用的验证码生成库。当你使用django-simple-captcha后你的Token将会泄露给用户。

首先在使用dojango-simple-captcha是,开发者需要在验证码的Django表单添加一个CaptchaField字段,在渲染表单的时候,在字段内部会生成随机的验证字符串和答案。然后验证字符串和答案会依照一种算法生成一个唯一的hashkey,然后这个hash将会返回给用户,用户可以通过这个hashkey和captcha_iamge视图(指的是在Web开发中用于生成和显示验证码图片的视图)生成验证码图片。django-simple-captcha提供了captcha_image视图,这个captcha_image视图只接受用户的hashkey参数。这个作用就是通过hashkey查找到数据库中对应的验证码。如果验证码存在则将key传给random.seed函数,然后就调用几次伪随机数相关函数,用于给验证码生成图片。但是使用random.seed(key)的目的是将后续操作的随机因素固定,保证key相同的情况下生成验证码图片完全相同。但是应为hashkey是用户已知的值,所以用户可以用户预测后续生成的伪随机数。这里可以预测伪随机数生成的结果不仅仅是django-simple-captcha后续生成的验证码,也包括jumpserver中其他使用了伪随机数的场景。

然后jumpserver内部使用伪随机数来生成找回密码的Token。

这里在python的官网中声明了不要以安全为目的使用random模块,并且在提供了secrets模块作为替代选项,但是在jumpserver依然使用random模块来生成Token。

环境搭建

在vulhub中有打包好的docker环境直接拉取即可

环境搭建好后页面如下

第一次登陆需要修改密码

漏洞复现

1、登陆

2、忘记密码,进入如下页面

3、点击验证图片进入图片链接

连接中有一串hash值,记录该值:0ff16a1909624642055e332de9cd2ab2e309c48e

4、返回修改密码界面,正确提交

5、进入邮箱验证界面,记录下url中的token的值:GEUuxyhzfIUGZ5NTrswMeyCwvBhYeFKiWiFp

6、执行脚本

获取验证码

 7、将验证码填入页面,注意刚刚用的是那个token就用那个页面,绕过邮箱验证

7、修改密码

8、测试

登陆成功

复现成功

修复

将函数中的random模块换成secrets

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com