你知道吗?图形验证码可能导致服务器崩溃 – FreeBuf互联网安全新媒体平台 | 关注黑客与极客

媒介

图片验证码是为了防止恶意破解密码、刷票、论坛注水等才呈现的,然则你有没有想过,你的图形验证码竟然可能导致办事器的崩溃?

那他是若何导致的呢?请听我婉婉道来。

先看看各大年夜平台对待此破绽的立场:

使用历程

这里以phpcms为例,首先必要找一个图形验证码。

将图片拖动到浏览器中将获得该图形验证码的链接:

将图片拖动到浏览器中将获得该图形验证码的链接:

将链接拖出来咱们阐发一下:

将链接拖出来咱们阐发一下:

http://127.0.0.1/phpcms/api.php?op=checkcode&code_len=4&font_size=20&width=130&height=50&font_color=&background=

code_len=4是验证码的字符的个数

font_size=20是验证码的大年夜小

width=130是验证码的宽

height=50是验证码的高

假如将参数font_size、width、height均设置为1000将会呈现什么环境呢?

可以发明验证码的外形已经改变,证实这个参数是会跟着我们的变动而变动的,而且在改成1000时,全部页面的加载速率显着变慢,大年夜家请想,假如都改为10000以致更高会发生什么工作?办事器会不会不停在处置惩罚我们所哀求的图片?

此时我们上神器burp来查验一下

当设置为1000时:

当设置为10000时:

处置惩罚所用的光阴显着增长,我们再看看在提议这个哀求时CPU有什么反映:

处置惩罚所用的光阴显着增长,我们再看看在提议这个哀求时CPU有什么反映:

CPU有一个显着的峰值,那当我们应用python去赓续进行哀求的时刻又会发生什么?这个是正常环境下的CPU占用率:

CPU有一个显着的峰值,那当我们应用python去赓续进行哀求的时刻又会发生什么?这个是正常环境下的CPU占用率:

当我们启动python法度榜样的时刻CPU的占用率:

可见,我们哀求的验证码对办事器孕育发生了重大年夜的影响。

代码阐发

根据哀求包我们跟进到 \api\checkcode.php:

在第12行和第17行可以看到,仅仅将验证码的长宽经由过程get要领吸收,没有任何其他的过滤,在第13行和第18行也仅仅只对最小值进行了限定,并没有对最大年夜值进行限定,以是就造成了这个验证码的破绽。

总结一下这个破绽的使用点:

1.图片长宽等可控

2.后端没有对图片的最大年夜大年夜小进行限定

办理规划

1.对吸收的参数进行最大年夜值的节制,或者固定值处置惩罚

2.应用固定大年夜小的验证码

*本文作者:1wuxin1,转载请注明来自FreeBuf.COM

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包