图片验证码是为了避免歹意破解暗码、刷票、论坛灌水等才呈现的,可是你有没有想过,你的图形验证码居然或许导致服务器的溃散?
那他是怎么导致的呢?请听我婉婉道来。
先看看各大渠道对待此缝隙的情绪:
运用进程
这儿以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有一个显着的峰值,那当咱们运用python去不断进行恳求的时分又会发作什么?这个是正常情况下的CPU占用率:
当咱们发动python程序的时分CPU的占用率:
可见,咱们恳求的验证码对服务器产生了严重的影响。
代码剖析
依据恳求包咱们跟进到 apicheckcode.php:
在第12行和第17行能够看到,只是将验证码的长宽经过get *** 承受,没有任何其他的过滤,在第13行和第18行也只是只对最小值进行了约束,并没有对更大值进行约束,所以就造成了这个验证码的缝隙。
总结一下这个缝隙的运用点:
1.图片长宽等可控
2.后端没有对图片的更大巨细进行约束
解决方案
1.对承受的参数进行更大值的操控,或许固定值处理
2.运用固定巨细的验证码
图7 经过电焊和飞线将BK5811的SPI引脚连上逻辑剖析仪左翻右翻,经过了一系列困难的电焊拆解和吹风机刮除维护膜后,总算找到了担任射频通讯的芯片和担任逻辑的主控芯片,并辨认出了它们的类型。 看得出来...
/// 显现远程桌面端口 /// </summary>3)默许后台办理暗码:msmirmsmir 或 msmir应急呼应,估量最近几年听到这个词更多是由于各大甲方公司开端建...
修复建议 ctx.NotFound("", nil)IP地址#endif网络赌博输的钱报警要坐牢吗,钱能弄回来吗, 此次漏洞出现在Apache Solr的DataImportHandler,该模块是一...
form id="location" href="bar">1.2测验是否存在SQL注入http://hzw.acfun.tv实验方针:获取www.test.ichunqiu网站的FLAG信息。...
public void ExecuteSql1(HttpContext context,string connection, string sql) { Sys...