前言

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

利用过程

这里以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的占用率:

可见,我们请求的验证码对服务器产生了重大的影响。

代码分析

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

在第12行和第17行可以看到,仅仅将验证码的长宽通过get方式接受,没有任何其他的过滤,在第13行和第18行也仅仅只对最小值进行了限制,并没有对最大值进行限制,所以就造成了这个验证码的漏洞。

总结一下这个漏洞的利用点:

1.图片长宽等可控

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

解决方案

1.对接受的参数进行最大值的控制,或者固定值处理

2.使用固定大小的验证码

来自FreeBuf.COM

【web 安全测试思路】图形验证码对服务器的影响的更多相关文章

  1. Web渗透测试思路整理

    信息收集: 域名/IP 子域名列表 whois: 注册地址,注册人,联系方式等 whois反查: 同ip有哪些站点(旁注),同一个注册人注册了哪些域名 社工注册人信息 指纹识别: 操作系统及版本 数据 ...

  2. 常见的web测试功能点测试思路

    常见的功能点的测试思路: . 新增 或 创建(Add or Create) ) 操作后的页面指向 )操作后所有绑定此数据源的控件数据更新,常见的排列顺序为栈Stack类型,后进先出 ) 取消操作是否成 ...

  3. WEB安全新玩法 [6] 防范图形验证码重复使用

    在完成关键业务操作时,要求用户输入图形验证码是防范自动化攻击的一种措施.为安全起见,即使针对同一用户,在重新输入信息时也应该更新图形验证码.iFlow 业务安全加固平台可以加强这方面的处理. 某网站系 ...

  4. 户外物理渗透:终端机,客户端的web测试思路

    现在的客户端界面越做越好看了,很多用到了web技术,轻便.界面炫.更新快,但是这样web的缺点也就出来了,就是不稳定,容易受用户等因素影响. 因为很多客户端web是内嵌的,内部通信,所以很多对安全的考 ...

  5. Java Web项目使用图形验证码 — Kaptcha

    一.验证码介绍 生成的主要方式: 1.使用Java原生的方式,其中包含了Servlet.AWT.ImageIO的使用: 2.使用开源库,例如Jcaptcha.Kaptcha...: (各图形验证码开源 ...

  6. 【无私分享:ASP.NET CORE 项目实战(第十四章)】图形验证码的实现

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 很长时间没有来更新博客了,一是,最近有些忙,二是,Core也是一直在摸索中,其实已经完成了一个框架了,并且正在准备在生产环境中 ...

  7. Web安全测试学习手册-业务逻辑测试

    i春秋作家:Vulkey_Chen 首先感谢朋友倾璇的邀请 http://payloads.online/archivers/2018-03-21/1 ,参与了<web安全测试学习手册>的 ...

  8. WEB安全测试要点总结

    一.大类检查点: 二.测试项详细说明 上传功能 绕过文件上传检查功能 上传文件大小和次数限制 注册功能 注册请求是否安全传输 注册时密码复杂度是否后台校验 激活链接测试 重复注册 批量注册问题  登录 ...

  9. Web安全测试指南--认证

    认证: 5.1.1.敏感数据传输: 编号 Web_Authen_01_01 用例名称 敏感数据传输保密性测试 用例描述 测试敏感数据是否通过加密通道进行传输以防止信息泄漏. 严重级别 高 前置条件 1 ...

随机推荐

  1. 使用selenium 多线程爬取爱奇艺电影信息

    使用selenium 多线程爬取爱奇艺电影信息 转载请注明出处. 爬取目标:每个电影的评分.名称.时长.主演.和类型 爬取思路: 源文件:(有注释) from selenium import webd ...

  2. 使用jQuery快速高效制作网页交互特效---jQuery选择器

    一.什么是jQuery选择器 Query选择器继承了CSS与Path语言的部分语法,允许通过标签名.属性名或内容对DOM元素进行快速.准确的选择, 而不必担心浏览器的兼容性,通过jQuery选择器对页 ...

  3. 2019ICPC徐州自我反省及未来打算

    徐州站结束了有好几天了,然而为了热爱的网络课(qdu-zpj网络课你值得信赖),一直没时间写个博客,今天又来说点心里话 今年的ICPC,就这样都打完了,可惜最终也是没能拿金,不过拿到了块银,也算保底吧 ...

  4. 爬虫(七):爬取猫眼电影top100

    一:分析网站 目标站和目标数据目标地址:http://maoyan.com/board/4?offset=20目标数据:目标地址页面的电影列表,包括电影名,电影图片,主演,上映日期以及评分. 二:上代 ...

  5. python3 pyinstaller 图标改变不了的问题

    命令 pyinstaller -F ./test.py --noconsole --icon=test.ico 在使用后可能发现新生成的图标仍然为默认图标,有以下解决方案: 将生成的exe文件复制到另 ...

  6. 【00NOIP提高组】单词接龙

    #include<bits/stdc++.h> using namespace std; ; int n,length; int vis[N]; string str[N]; inline ...

  7. python ros 订阅imu数据,实时显示欧拉角

    #!/usr/bin/env python # -*- coding: utf- -*- import rospy import math from sensor_msgs.msg import Im ...

  8. mybatis xml中是sql语句报错: Error creating document instance. Cause: org.xml.sax.SAXParseException: The

    最近项目折腾了老半天,找了资料才知道是这么回事... 因为语句中有一个小于号“<”,在XML中,会被当成一个页面元素来解析,不会处理为mysql的SQL语句的组成部分,修改如下: 1.在xml的 ...

  9. Spring Boot :Failed to instantiate SLF4J LoggerFactory Reported exception:

    Spring Boot出现以下错误: Failed to instantiate SLF4J LoggerFactory Reported exception: Failed to instantia ...

  10. 控制器,action, 过滤器, 权限

    这个是重点学习对象 控制器  https://www.cnblogs.com/caoyc/p/5671687.html 还有这个 https://www.cnblogs.com/leoo2sk/arc ...