之前小伙伴挖到一个接口,说是可以改一下POST头就可以无限制爆破邮箱,扔给我让我去做EXP爆破,然后就发现了一堆坑爹问题,甚至报废了我自己拿来测试的邮箱。。。。。我真是日了狗了。。。。。
首先,进入这个网址选择邮箱登陆code>http://bbs.c.163.com/signin/</code>,本来在这里输错3出会跳出验证码,但是经过测试发现,在POST头里面加入X-Forwarded-For就可以绕过这个验证码。
之后我就根据这个,制作了一个EXP,是Python,我想讲讲思路,首先我们要先复位之前漏洞的情况,才能根据这个制作EXP,我先写了一个脚本,用来测试研究,这是代码
我相信大家都看到懂,一个简单的复现程序,我们先运行试试。
因为是测试,我就直接让函数返回整个请求的返回包进行对比,这个用户名和账号我都输入的是正确的,大家记住这个返回包,我们制作EXP首先是要确认两种情况,一种是入侵成功,一种是入侵失败,我们要写个if语句判断区别。
我把传入的账号密码写为错误的试试。
这次是错误的密码,然后我们可以看到,这个跳转链接变得很短,很好,这就是我们写成功或者失败的if判断语句的判断点。
我加入了一行代码,修改了函数的返回,意思很简单,获取返回包里面的Location,也就是那个跳转网址的字符串,将这个字符串储存在H里面,然后lin()函数是用来计算字符串长度的,从图片里面我们可以看到,错误的里面那个字符串的长度为138,我们输入正确的密码看看。
很好,返回值是372,差别够大了,足够写一个if语句了,为了折中,我们把if语句的判断字符串是否成功的大小设置为200,大于200就是成功,小于200就是失败。
EXP不能这样麻烦,每次利用都要这样打开Python编译器运行,还要可以接收用户输入,还要能读取字典文件........
填充一下程序,一个简单的EXP到手。下面是源码:
这是运行截图:
看起来不错吧,我们开始爆破,我这里用我的邮箱示范
敲入代码
开始破解了
为了演示,我随便拿的一个字典,正确密码再最后,别吐槽我字典。
密码出来了,本来以为这个洞也就这样了,,,,因为我作死,经常测试,,,,结果我的账号。。。
即使输入正确的密码,走普通用户路线。。。也无法登陆,出现这个什么鬼邮箱认证失败。。。。。。
我试了重置账号密码等等一系列手段,只有最后重新注册覆盖才能使用,但是以前的数据全部被覆盖消失了。。。。。我只能说,这个EXP可能附带报废你的网易邮箱,拿自己邮箱测试的时候需谨慎。。。。。
首先,进入这个网址选择邮箱登陆code>http://bbs.c.163.com/signin/</code>,本来在这里输错3出会跳出验证码,但是经过测试发现,在POST头里面加入X-Forwarded-For就可以绕过这个验证码。
之后我就根据这个,制作了一个EXP,是Python,我想讲讲思路,首先我们要先复位之前漏洞的情况,才能根据这个制作EXP,我先写了一个脚本,用来测试研究,这是代码
我相信大家都看到懂,一个简单的复现程序,我们先运行试试。
因为是测试,我就直接让函数返回整个请求的返回包进行对比,这个用户名和账号我都输入的是正确的,大家记住这个返回包,我们制作EXP首先是要确认两种情况,一种是入侵成功,一种是入侵失败,我们要写个if语句判断区别。
我把传入的账号密码写为错误的试试。
这次是错误的密码,然后我们可以看到,这个跳转链接变得很短,很好,这就是我们写成功或者失败的if判断语句的判断点。
我加入了一行代码,修改了函数的返回,意思很简单,获取返回包里面的Location,也就是那个跳转网址的字符串,将这个字符串储存在H里面,然后lin()函数是用来计算字符串长度的,从图片里面我们可以看到,错误的里面那个字符串的长度为138,我们输入正确的密码看看。
很好,返回值是372,差别够大了,足够写一个if语句了,为了折中,我们把if语句的判断字符串是否成功的大小设置为200,大于200就是成功,小于200就是失败。
EXP不能这样麻烦,每次利用都要这样打开Python编译器运行,还要可以接收用户输入,还要能读取字典文件........
填充一下程序,一个简单的EXP到手。下面是源码:
这是运行截图:
看起来不错吧,我们开始爆破,我这里用我的邮箱示范
敲入代码
开始破解了
为了演示,我随便拿的一个字典,正确密码再最后,别吐槽我字典。
密码出来了,本来以为这个洞也就这样了,,,,因为我作死,经常测试,,,,结果我的账号。。。
即使输入正确的密码,走普通用户路线。。。也无法登陆,出现这个什么鬼邮箱认证失败。。。。。。
我试了重置账号密码等等一系列手段,只有最后重新注册覆盖才能使用,但是以前的数据全部被覆盖消失了。。。。。我只能说,这个EXP可能附带报废你的网易邮箱,拿自己邮箱测试的时候需谨慎。。。。。